C语言编程输入一个数,从a[10]中查找这个数,如果找到输出这个数,没找到输出“no found!”。 (注意:使用二分查找,不可调用用户自定义的函数
时间: 2023-06-27 10:01:43 浏览: 99
好的,下面是代码实现:
```c
#include <stdio.h>
int main() {
int a[10] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
int n, left = 0, right = 9, mid;
printf("请输入一个数:");
scanf("%d", &n);
while (left <= right) {
mid = (left + right) / 2;
if (a[mid] == n) {
printf("%d\n", n);
return 0;
} else if (a[mid] > n) {
right = mid - 1;
} else {
left = mid + 1;
}
}
printf("no found!\n");
return 0;
}
```
这里使用了二分查找法(也称折半查找),将数组a[10]平均分为两部分,如果中间值大于待查找值,则在左半部分继续查找,否则在右半部分继续查找,直到找到待查找值或者左右指针交错。如果找到,则输出该值,否则输出"no found!"。
相关问题
C语言编程【问题描述】在数组中查找指定元素:输入一个正整数n(1<n<=10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应的下标,否则输出“no found". 【样例输入】 3 1 2 -6 2 【样例输出】 1
下面是该问题的C语言代码实现:
```c
#include <stdio.h>
int main() {
int n, x;
printf("请输入数组长度n:");
scanf("%d", &n);
int a[n];
printf("请输入%d个整数存入数组a中:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
printf("请输入要查找的整数x:");
scanf("%d", &x);
int flag = 0;
for (int i = 0; i < n; i++) {
if (a[i] == x) {
printf("%d", i);
flag = 1;
break;
}
}
if (flag == 0) {
printf("no found");
}
return 0;
}
```
运行结果如下:
```
请输入数组长度n:3
请输入3个整数存入数组a中:1 2 -6
请输入要查找的整数x:2
1
```
解释:首先输入数组长度n和n个整数存入数组a中,然后输入要查找的整数x。接着,使用一个变量flag来标记是否找到x,初始值为0。遍历数组a,如果找到x,输出当前下标i,将flag设为1,并跳出循环。如果遍历完整个数组a后,flag仍为0,则说明没有找到x,输出"no found"。
C语言编程设有一个整型数组,另输入一个整数,编程查找这个整数是否在数组中出现过,若出现,则输出第一次出现的位置,否则,输出no found。
下面是一个实现该功能的C语言代码:
```c
#include <stdio.h>
int main() {
int arr[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10}; // 假设数组为 {1, 3, 5, 7, 9, 2, 4, 6, 8, 10}
int target, i;
printf("请输入要查找的整数:");
scanf("%d", &target);
for (i = 0; i < 10; i++) {
if (arr[i] == target) {
printf("%d\n", i);
return 0;
}
}
printf("no found\n");
return 0;
}
```
运行结果:
```
请输入要查找的整数:5
2
```
如果要改变数组大小,只需要修改初始化语句即可。
阅读全文
相关推荐
















