http://codeup.cn/problem.php?cid=100000576&pid=3(题目)
#include<stdio.h>
#include<string.h>
int flag[101];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{ memset(flag,0,sizeof(flag));
int x;
for(int i=0;i<n;i++)
{
scanf("%d",&x);
flag[x]=1;
}
int m;
scanf("%d",&m);
int e;
for(int i=0;i<m;i++)
{
scanf("%d",&e);
if(flag[e]==1)
{
printf("YES\n");
}
else
printf("NO\n");
}
}
return 0;
}
scanf("%d",&x);//第12行
flag[x]=1;
scanf("%d",&e);//第21行
if(flag[e]==1)
{
printf("YES\n");
}
else
printf("NO\n");
输入的x或e可能会大于100,导致flag数组访问越界产生运行时错误
你可以尝试一下的输入样例:
6 3 2 5 4 7 101 2 3 6 101