二分法查找一个有序数组中是否有某个数
大家看了可以自己写一下
(
要用知识点
数组
while循环
scanf 函数
printf函数
)

//用二分法查找
#include<stdio.h>
int main()
{
	char arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[1]);
	
	//输入查找的数
	int k = 0;
	char a = '0';
	do
	{
		int left = 0;
		int right = sz - 1;
		printf("请输入一个数\n");
		scanf_s("%d", &k);
		while (left <= right)
		{
			int mid = (left + right) / 2;
			if (arr[mid] == k)
			{
				printf("找到了,下标是%d\n", mid); 
			
				break;
			}
			else if (mid < k)	left = mid + 1;
			else right = mid - 1;
		}
		if (left > right) printf("找不到");
		int i = getchar();
		printf("请问是否继续【yes-y     no -n】\n");
		scanf_s("%c", &a);
	} while (a == 'y' || a == 'Y');
	return 0;
}


















