从键盘上输入 15 个数,只用c语言,不用c++编程实现:首先对它按从小到大的顺序排序,然后,从键盘 上再输入一个数,用折半查找法找出该数是数组中的第几个元素的值。若该数不在数组 中,则打印出“无此数”。
时间: 2023-06-12 14:05:44 浏览: 106
以下是实现代码:
```c
#include <stdio.h>
int main() {
int arr[15]; // 定义数组
int i, j, temp, num, low, high, mid; // 定义变量
// 输入15个数
printf("请输入15个数:");
for (i = 0; i < 15; i++) {
scanf("%d", &arr[i]);
}
// 对数组按从小到大的顺序排序
for (i = 0; i < 14; i++) {
for (j = i + 1; j < 15; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 输入要查找的数
printf("请输入要查找的数:");
scanf("%d", &num);
// 折半查找法
low = 0;
high = 14;
while (low <= high) {
mid = (low + high) / 2;
if (arr[mid] == num) {
printf("%d 是数组中的第 %d 个元素\n", num, mid + 1);
break;
} else if (arr[mid] < num) {
low = mid + 1;
} else {
high = mid - 1;
}
}
if (low > high) {
printf("无此数\n");
}
return 0;
}
```
运行结果:
```
请输入15个数:9 8 7 6 5 4 3 2 1 10 11 12 13 14 15
请输入要查找的数:5
5 是数组中的第 5 个元素
```
阅读全文