if (a[i]!=n);
printf("no");
在循环结束以后执行,这时i=5,数组都已经越界
你把它放到循环里面,如下
# include
void main()
{
printf("输入5个数在输入一个数,若输入的数与这5个数的其中一个相等输出“YES”否则输出“NO”\n");
int i,n,a[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("请输入要比较的数\n");
scanf("%d",&n);
for(i=0;i<5;i++)
{
if (a[i]==n);
printf("yes");//如果相等,输出yes
if (a[i]!=n);
printf("no"); //如果不等,输出no,但这样会输出5次,最好改成这样
}
}
如下:
# include
void main()
{
printf("输入5个数在输入一个数,若输入的数与这5个数的其中一个相等输出“YES”否则输出“NO”\n");
int i,n,a[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("请输入要比较的数\n");
scanf("%d",&n);
for(i=0;i<5;i++)
{
if (a[i]==n);
break;
}
if(i==5)printf("No");//比较一边没碰到相同的
else printf("Yes");//找到相同的了
}
/*完全可以执行了,注意看注释*/
# include
void main()
{
printf("输入5个数在输入一个数,若输入的数与这5个数的其中一个相等输出“YES”否则输出“NO”\n");
int i,n,a[5],t=0;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("请输入要比较的数\n");
scanf("%d",&n);
for(i=0;i<5;i++)
if (a[i]==n)
t++; /*t来累计有多少个no,不然会输出4个或5个no ,道理自己想想*/
if(t==1)
printf("yes\n");
else
printf("no\n");
}
if 语句后面都了分号
# include
void main()
{
printf("输入5个数在输入一个数,若输入的数与这5个数的其中一个相等输出“YES”否则输出“NO”\n");
int i,n,a[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("请输入要比较的数\n");
scanf("%d",&n);
for(i=0;i<5;i++)
{
if (a[i]==n)
printf("yes");
}
if (a[i]!=n)
printf("no");
}
# include
void main()
{
int i,n,a[5];
printf("输入5个数在输入一个数,若输入的数与这5个数的其中一个相等输出“YES”否则输出“NO”\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("请输入要比较的数\n");
scanf("%d",&n);
for(i=0;i<5;i++)
{
if (a[i]==n)
{
printf("yes");
break; //如果比较相等则跳出循环
}
}
if(i>5) //如果跳出循环时i的值大于5则说明没有找到相等的数
printf("no");
}
还有哦,以后要记住,if语句后不要跟“;”哦^-^
比较完以后再看输出,你这样的话是比一个输出一个.和你的意思肯定不一样!