习题8-2 在数组中查找指定元素(15 分)

习题8-2 在数组中查找指定元素(15 分)

本题要求实现一个在数组中查找指定元素的简单函数。

函数接口定义:

1
int search( int list[], int n, int x );

其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到

则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#define MAXN 10

int search( int list[], int n, int x );

int main()
{
int i, index, n, x;
int a[MAXN];

scanf("%d", &n);
for( i = 0; i < n; i++ )
scanf("%d", &a[i]);
scanf("%d", &x);
index = search( a, n, x );
if( index != -1 )
printf("index = %d\n", index);
else
printf("Not found\n");

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例1:

1
2
3
5
1 2 2 5 4
2

输出样例1:

1
index = 1

输入样例2:

1
2
3
5
1 2 2 5 4
0

输出样例2:

1
Not found
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
int search( int list[], int n, int x );
#define MAXN 10

int main()
{
int i, index, n, x;
int a[MAXN];

scanf("%d", &n);
for( i = 0; i < n; i++ )
scanf("%d", &a[i]);
scanf("%d", &x);
index = search( a, n, x );
if( index != -1 )
printf("index = %d\n", index);
else
printf("Not found\n");

return 0;
}

int search( int list[], int n, int x ){
int i,*p=&list[0];
for(i=0;i<n;i++){
if(x==*p++){
break;
}
}
if(i==n){
return -1;
}
return i;
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×