C语言新手,我做过的练习题——二分法

该题应该出自MOOC 翁恺老师的课程

#include 
#define M 10
int main(void)
{
	static int a[M] = {-1,2,4,7,12,16,18,21,23,45};
	int n,low,mid,high,found;
	low = 0;
	high = M-1;
	found = 0;    //found 用来充当类似布尔值的用途,这是个技巧,请好好运用 
	printf("输入你要寻找的数字"); 
	scanf("%d",&n);
	
	while(low<=high)
	{
		mid = (low+high)/2;
		if(n == a[mid])
		{
			found = 1;
			break;
		}
		else if(n>a[mid])
		{
			low = mid+1;
		}
		else
		{
			high = mid -1;
		}
	}
	if(found == 1 )
	{
		printf("The index of %d is %d",n,mid);
	}
	else
	{
		printf("There is not %d",n);
	}
	 return 0;
 } 

你可能感兴趣的:(个人笔记,C语言新手,练习题)