题目
7-3 在数组中查找指定元素
分数 14
全屏浏览题目
切换布局
作者 王秀
单位 福州大学
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个正整数 n (1<n<=10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应元素的最小下标,否则输出"Not found"。
要求定义并调用函数search(list, n, x),它的功能是在数组list中查找元素x,若找到则返回相应元素的最小下标,否则返回-1,函数形参 list 的类型是整型指针,形参n和x的类型是int,函数的类型是int。
输出格式语句:printf("index = %d\n", );
输入输出示例:括号内为说明,无需输入输出
输入样例:
2 (repeat=2)
3 (n=3)
1 2 -6
2 (x=2)
5 (n=5)
1 2 2 5 4
0 (x=0)
输出样例:
index = 1
Not found
答案:
#include <stdio.h>
int main()
{
int rep(int e);//函数作用:输入n个整数存入数组a中
int search(int a[],int n,int x);//在数组a中查找x
int repeat=0;
int index[100]={0};//方便存储每repeat次搜索返回的index的值
int i=0;
scanf("%d",&repeat);
for(i=0;i<repeat;i++)//做repeat次
{
index[i]=rep(i);
}
for(i=0;i<repeat;i++)
{
if(index[i]==-1)printf("Not found\n");
else printf("index = %d\n",index[i]);
}
return 0;
}
int rep(int e)
{
int search(int a[],int n,int x);
int n=0;
int a[10]={0};
int i=0;
int x=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&x);
return search(a,n,x);
}
int search(int a[],int n,int x)
{
int i=0;
int judge=-1;
for(i=0;i<n;i++)
if(x==a[i])judge=i;
return judge;
}