二分法查找元素

1.在整型有序数组中查找想要的数字,找到了返回下标,找不到返回 - 1

int find_num(int a){
	int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9 ,10};
	int left = 0;
	int right = 9;
	while (left <= right){
		int mid = (left + right) / 2;
		if (a > arr[mid]){
			left = mid + 1;
		}
		else if (a < arr[mid]){
			right = mid - 1;
		}
		else{
			printf("所查找的数字的下标是%d\n", mid);
			break;
		}
	}
	if (left>right){           //表示未找到,输出-1
		printf("-1\n");
	}
}

主函数及头文件

#include
void main(){
	printf("输入你要找的数字(1-10):\n");
	int a;
	scanf("%d", &a);
	find_num(a);
}

你可能感兴趣的:(C语言)