输入n(n<100)的值,以及n个从小到大排序的整数序列,再输入一个待查找的整数m,使用二分法进行查找该数的序号。c语言
时间: 2024-02-01 17:15:56 浏览: 78
以下是用C语言实现二分查找的代码:
```c
#include <stdio.h>
int binarySearch(int arr[], int n, int m) {
int left = 0, right = n - 1, mid;
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] == m) {
return mid;
} else if (arr[mid] > m) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1; //未找到
}
int main() {
int n, m, i;
int arr[100];
printf("请输入n的值:");
scanf("%d", &n);
printf("请输入%d个从小到大排序的整数:", n);
for (i = 0; i < n; ++i) {
scanf("%d", &arr[i]);
}
printf("请输入要查找的整数:");
scanf("%d", &m);
int index = binarySearch(arr, n, m);
if (index != -1) {
printf("%d在序列中的位置是%d\n", m, index + 1);
} else {
printf("未找到%d\n", m);
}
return 0;
}
```
首先输入n和n个从小到大排序的整数,然后输入要查找的整数m。接着调用binarySearch函数进行二分查找,返回m在序列中的位置,如果未找到则返回-1。最后输出查找结果。
阅读全文