【问题描述】4.1.1 顺序查找:按照序列原有顺序对数组进行遍历比较,查询指定的数值的基本查找算法。
要求:从键盘输入10个整数(不重复),保存到数组中;再输入一个整数x,利用顺序查找法查询整数x在数组中的位置,如果查询到则输出x在数组中的位置,如果未查询到,输出“Not Found”。
【输入输出样例1】
21 2 36 47 5 65 7 -89 9 100
7
Index is 6(输出结束不换行)
【输入输出样例2】
21 2 36 47 5 65 7 -89 9 100
12
Not Found(输出结束不换行)
源代码
#include <stdio.h>
int sequentialSearch(int arr[], int n, int key) {
int i;
for (i = 0; i < n; i++) {
if (arr[i] == key) {
return i;
}
}
return -1;
}
int main() {
int arr[10];
int i, x, result;
printf("请输入10个整数(不重复):");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
printf("请输入一个整数x:");
scanf("%d", &x);
result = sequentialSearch(arr, 10, x);
if (result != -1) {
printf("Index is %d\n", result);
} else {
printf("Not Found\n");
}
return 0;
}
上述程序中,我们定义了sequentialSearch
函数来进行顺序查找。它接受一个整型数组arr
、数组长度n
和要查找的整数key
作为参数。通过遍历数组,逐个比较元素与key
的值,如果找到了匹配的元素,则返回该元素的索引;如果遍历完整个数组都没有找到匹配的元素,则返回-1。
在main
函数中,我们首先从键盘输入10个整数,保存到数组arr
中。然后再输入一个整数x
,利用顺序查找算法查询x
在数组中的位置。如果找到了,则输出Index is
和相应的索引值;如果未找到,则输出Not Found
。
你可以根据题目要求进行输入并查看输出结果。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END