编写下列函数:
Bool search(int a[],int n,int key) ;
a是要搜寻的数组,n是数组内元素的数量,而且key是搜索键。如果key与数组a的某个元素匹配了,那么search函数必须返回TRUE,否则返回FALSE。要求使用指针算术运算而不是下标来访问数组元素。
函数及验证程序如下:
#include <stdio.h>
#define N 10
#define TRUE 1
#define FALSE 0
typedef int Bool;
Bool search(int a[], int n, int key);
main(){
int a[N] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *p, k, result;
printf("Number to search for:");
scanf("%d", &k);
printf("Enter a message:");
for(p = a; p < a + N; p++)
printf("%-2d", *p);
printf("\n");
result = search(a, p - a, k);
printf("Result( 1 = TRUE, 0 = FALSE): %d", result);
return 0;
}
Bool search(int a[], int n, int key){
int *p;
for(p = a; p < a + n; p++) {
if(key == *p)
return TRUE;
}
return FALSE;
}
运行结果如下: