c语言,编写程序,在有序数组中查找某数,若该数在此数列中,则输出他的位置,否则输出“no found”
时间: 2024-03-24 22:40:43 浏览: 90
C语言程序设编写程序在数组中查找一个数要求 ⑴用顺序查找实现 ⑵用折半查找实现。 注:若有该数,则输出该数,否则输出“无此数”。
5星 · 资源好评率100%
好的,以下是用C语言编写的程序,可以在有序数组中查找某个数的位置:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 假设数组为有序数组
int n = sizeof(arr) / sizeof(arr[0]); // 数组元素个数
int target = 5; // 要查找的数
int left = 0, right = n - 1, mid; // left、right、mid分别表示数组左、右、中间位置
while (left <= right) { // 二分查找
mid = (left + right) / 2; // 计算中间位置
if (arr[mid] == target) { // 找到目标数
printf("目标数在数组中的位置是:%d\n", mid);
return 0;
} else if (arr[mid] > target) { // 目标数在左半边
right = mid - 1;
} else { // 目标数在右半边
left = mid + 1;
}
}
printf("no found\n"); // 没有找到目标数
return 0;
}
```
在这个程序中,我们首先定义了一个有序数组 `arr`,然后定义了要查找的数 `target`。接着,我们定义了三个变量 `left`、`right`、`mid`,分别表示数组的左边界、右边界和中间位置。
在程序的 `while` 循环中,我们通过二分查找的方式逐步缩小要查找的范围,直到找到目标数或者确认目标数不在数组中。如果找到目标数,则输出它在数组中的位置;如果没有找到,则输出“no found”。
希望这个程序能够帮到你!
阅读全文