怎样在给定的数组中查找一个数
Input多组测试,每组第一行输入1个整数n(n<20),然后是n个整数第二行输入1个整数mOutput查找在第一行的n个整数中第一次出现数字m的下标位置并输出,如果没有...
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
我写的:
#include<stdio.h>
int main()
{
int n,a[20];
int i,j,m;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(j=0;j<n;j++)
{
if(a[j]==m)
{
printf("%d\n",j);
break;
}
}
if(a[j]!=m) printf("No\n");
return 0;
}
怎么也过不了,求大神帮助!!! 展开
多组测试,每组第一行输入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
我写的:
#include<stdio.h>
int main()
{
int n,a[20];
int i,j,m;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(j=0;j<n;j++)
{
if(a[j]==m)
{
printf("%d\n",j);
break;
}
}
if(a[j]!=m) printf("No\n");
return 0;
}
怎么也过不了,求大神帮助!!! 展开
5个回答
展开全部
#include<stdio.h>
int main()
{
int n,a[20];
int i,j,m;
while (scanf("%d", &n) != EOF)
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(j=0; j<n; j++)
{
if(a[j]==m)
{
printf("%d\n",j);
break;
}
}
if(j == n) printf("No\n");
}
return 0;
}
是多组测试的原因
注意这一行: while (scanf("%d", &n) != EOF)
int main()
{
int n,a[20];
int i,j,m;
while (scanf("%d", &n) != EOF)
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(j=0; j<n; j++)
{
if(a[j]==m)
{
printf("%d\n",j);
break;
}
}
if(j == n) printf("No\n");
}
return 0;
}
是多组测试的原因
注意这一行: while (scanf("%d", &n) != EOF)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int n,a[20];
int i,j,m;
while (scanf("%d", &n) != EOF)
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(j=0; j<n; j++)
{
if(a[j]==m)
{
printf("%d\n",j);
break;
}
}
if(j == n) printf("No\n");
}
return 0;
}
是多组测试的原因
注意这一行: while (scanf("%d", &n) != EOF)
int main()
{
int n,a[20];
int i,j,m;
while (scanf("%d", &n) != EOF)
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(j=0; j<n; j++)
{
if(a[j]==m)
{
printf("%d\n",j);
break;
}
}
if(j == n) printf("No\n");
}
return 0;
}
是多组测试的原因
注意这一行: while (scanf("%d", &n) != EOF)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
n的值要初始化 m值最好也要初始化
if(a[j]==n) printf("No\n");
改成
if(j==n) printf("No\n");
if(a[j]==n) printf("No\n");
改成
if(j==n) printf("No\n");
更多追问追答
追问
改了,自己测试可以过,但提交到ACM上去还是显示wrong answer
追答
初始化了吗
#include
int main()
{
int n=10,a[20];
int i,j,m=5;
for(i=0;i<n;i++)//输入10个数 查找5
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
for(j=0;j<n;j++)
{
if(a[j]==m)
{
printf("%d\n",j);
break;
}
}
if(j==n) printf("No\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一开始没有读入n吗?
追问
不好意思,漏了一行。读入了n,但还是错误的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询