大哥大姐看看我这个C简单程序那里出错了

# include <stdio.h>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");}我怎么调不出"NO了那
2026年09月16日 23:06
有5个网友回答
网友(1):

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");//找到相同的了
}

网友(2):

/*完全可以执行了,注意看注释*/

# 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");

}

网友(3):

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");

}

网友(4):

# 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语句后不要跟“;”哦^-^

网友(5):

比较完以后再看输出,你这样的话是比一个输出一个.和你的意思肯定不一样!