怎样在给定的数组中查找一个数

2025-05-21 15:21:37
推荐回答(5个)
回答(1):

Input
多组测试,每组第一行输入1个整数n(n<20),然后是n个整数
第二行输入1个整数m
Output
查找在第一行的n个整数中第一次出现数字m的下标位置并输出,如果没有找到则输出No
Sample Input
3 4 5 6
5
4 2 2 2 2
2
Sample Output
1
0

n的值要初始化  m值最好也要初始化
if(a[j]==n) printf("No\n");

改成
if(j==n) printf("No\n")。

回答(2):

#include
int main()
{
int n,a[20];
int i,j,m;
while (scanf("%d", &n) != EOF)
{
for(i=0; i {
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(j=0; j {
if(a[j]==m)
{
printf("%d\n",j);
break;
}
}
if(j == n) printf("No\n");
}
return 0;
}
是多组测试的原因
注意这一行: while (scanf("%d", &n) != EOF)

回答(3):

#include
int main()
{
int n,a[20];
int i,j,m;
while (scanf("%d", &n) != EOF)
{
for(i=0; i {
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(j=0; j {
if(a[j]==m)
{
printf("%d\n",j);
break;
}
}
if(j == n) printf("No\n");
}
return 0;
}
是多组测试的原因
注意这一行: while (scanf("%d", &n) != EOF)

回答(4):

n的值要初始化 m值最好也要初始化
if(a[j]==n) printf("No\n");

改成
if(j==n) printf("No\n");

回答(5):

一开始没有读入n吗?