设计一个程序,输出在有$n$ ($n \le 1000$)个元素的顺序表有中采用顺序方法查找关键字 $x$ 的过程。 输入 第一行有 $1$ 个数 $n$。第二行有用空格隔开的 $n$ 个数,表示这 $n$ 个元素,保证在 $0 \sim 10^9$ 之间。第三行一个数 $x$,即要查找的元素。 输出 输出在查找过程中所访问的元素,每两个元素之间有一个空格,行尾无空格。 如果找不到这个元素,只需要输出 -1。
时间: 2024-01-17 14:03:09 浏览: 56
这是一个简单的顺序查找算法题,可以使用循环遍历整个数组,查找指定的元素,并输出在查找过程中所访问的元素。
以下是一个示例代码,用于实现顺序查找:
```c
#include <stdio.h>
int main() {
int n, x;
int a[1000];
scanf("%d", &n); // 输入元素个数
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]); // 输入每个元素的值
}
scanf("%d", &x); // 输入要查找的元素
int found = 0;
for (int i = 0; i < n; i++) {
printf("%d ", a[i]); // 输出访问的元素
if (a[i] == x) { // 如果找到了,输出-1并退出循环
found = 1;
break;
}
}
if (!found) {
printf("-1");
}
return 0;
}
```
在上面的代码中,我们首先输入元素个数和每个元素的值,并将它们存储在数组`a`中。然后,我们输入要查找的元素`x`,并使用循环遍历整个数组。在每次循环中,我们输出访问的元素,并检查它是否等于要查找的元素`x`。如果找到了,我们输出-1并退出循环;否则,我们继续循环。如果循环结束后仍然没有找到元素`x`,我们输出-1表示未找到。
需要注意的是,在输出访问的元素时,我们需要在每两个元素之间添加一个空格。在找到元素后,我们不需要输出最后一个访问的元素,因此需要在循环内部使用`break`语句退出循环。
阅读全文