c语言编程输入n(n<100)的值,以及n个从小到大排序的整数序列,再输入一个待查找的整数m,使用二分法进行查找该数的序号
时间: 2024-05-03 12:18:32 浏览: 102
好的,下面是使用二分法在有序序列中查找元素的C语言代码:
```c
#include <stdio.h>
int binary_search(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) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
int main()
{
int n, m;
int arr[100];
printf("请输入n和n个从小到大排序的整数:\n");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("请输入要查找的整数m:\n");
scanf("%d", &m);
int pos = binary_search(arr, n, m);
if (pos == -1) {
printf("未找到该元素\n");
} else {
printf("该元素的序号为:%d\n", pos);
}
return 0;
}
```
注:以上代码假设输入的n不超过100,且输入的n个整数已经从小到大排序。
阅读全文