2.使用数组编程。有15个数存放在一个数组中,输入一个数要求用折半查找法找出该数是数组中的第几个元素的值,如果该数不在数组中,则输出无此数,要找的数用scanf函数输入。 (用c语言编写程序)
时间: 2024-12-19 21:16:17 浏览: 7
编写数组函数程序
为了使用C语言编写折半查找算法,你可以创建一个名为`binary_search`的函数,它接受一个整型数组、数组长度和目标数作为参数。以下是程序的基本结构:
```c
#include <stdio.h>
#include <stdbool.h>
// 定义数组大小
#define ARRAY_SIZE 15
// 折半查找函数
int binary_search(int arr[], int n, int target) {
int low = 0;
int high = n - 1;
while (low <= high) {
int mid = low + (high - low) / 2; // 计算中间索引
if (arr[mid] == target) { // 如果找到目标数
return mid;
} else if (arr[mid] < target) { // 如果目标大于中间数,调整范围到右半部分
low = mid + 1;
} else { // 如果目标小于中间数,调整范围到左半部分
high = mid - 1;
}
}
// 数组中未找到目标数,返回-1表示“无此数”
return -1;
}
int main() {
int arr[ARRAY_SIZE]; // 初始化数组
// 假设数组已经初始化了15个随机或用户输入的数
int target;
printf("请输入要查找的数字:");
scanf("%d", &target);
int index = binary_search(arr, ARRAY_SIZE, target);
if (index != -1) {
printf("该数在数组中的位置是 %d\n", index);
} else {
printf("无此数\n");
}
return 0;
}
```
阅读全文