c语言由键盘任意输入10个整型数据无重复值且有序,存放到数组中,再输入1个整型数据,查找此数据在数组中是否存在,如果存在,输出其位置,不存在给出提示。
时间: 2023-06-10 15:05:39 浏览: 61
好的,我知道了。这是一个比较基础的题目。下面是C语言代码实现:
```c
#include <stdio.h>
int main() {
int arr[10];
int i, n, x, flag = 0;
// 从键盘输入10个有序且无重复的数组元素
printf("Input 10 integers in ascending order:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
// 如果输入的数据不是升序排列或有重复,则提示错误并退出程序
if (i > 0 && (arr[i] <= arr[i - 1] || arr[i] == arr[i - 1])) {
printf("Error: input is not in ascending order or has duplicates!\n");
return 0;
}
}
// 从键盘输入要查找的数
printf("Input an integer to search: ");
scanf("%d", &x);
// 二分查找法
int left = 0, right = 9;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == x) {
printf("%d is at position %d.\n", x, mid + 1);
flag = 1;
break;
} else if (arr[mid] < x) {
left = mid + 1;
} else {
right = mid - 1;
}
}
// 如果要查找的数不存在,则输出提示
if (flag == 0) {
printf("%d is not found in the array.\n", x);
}
return 0;
}
```
上面的程序采用了二分查找法,在比较快速的时间内可以查找到给定的数是否在数组中存在。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)