用C语言写一个设置监视哨的顺序查找
时间: 2023-09-15 08:20:38 浏览: 148
有监视哨的顺序查找
好的,以下是用C语言实现设置监视哨的顺序查找的代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
int search(int arr[], int n, int key);
int main() {
int arr[MAX_SIZE], n, key, index;
printf("Enter the size of the array: ");
scanf("%d", &n);
printf("Enter the elements of the array: ");
for(int i=0; i<n; i++) {
scanf("%d", &arr[i]);
}
printf("Enter the key to be searched: ");
scanf("%d", &key);
index = search(arr, n, key);
if(index == -1) {
printf("Key not found.\n");
}
else {
printf("Key found at index %d.\n", index);
}
return 0;
}
int search(int arr[], int n, int key) {
int i;
arr[n] = key; // 设置监视哨
for(i=0; arr[i]!=key; i++);
if(i == n) {
return -1; // key not found
}
else {
return i; // index of key
}
}
```
在这个代码中,我们定义了一个 `search` 函数,该函数接收一个整数数组、数组的大小和要搜索的关键字,并返回关键字在数组中的索引。在函数内部,我们设置了一个监视哨,它被设置为要搜索的关键字。然后,我们遍历整个数组,直到找到关键字或遍历完整个数组为止。如果关键字未找到,则返回 -1,否则返回它的索引。
在 `main` 函数中,我们从用户获取数组的大小和元素,并将它们传递给 `search` 函数进行搜索。最后,我们根据搜索结果输出相应的消息。
阅读全文