很简单的一个C语言程序,但运行出现了一个很奇怪的问题。。。谁能帮帮忙啊。。。

2025-04-14 01:11:40
推荐回答(3个)
回答1:

给你改了一下:
#include "stdio.h"
void main()
{ char a,b,c,d;

printf("遵守请输入y: ");
scanf("%c",&a);
if(a!='y'){printf("您不能继续答题!");}
else{printf("欢迎答题!");
printf("请输入名字的拼音首字母:");
//scanf("%c%c%c",&b,&c,&d);
getchar();
b=getchar();
c=getchar();
d=getchar();
if((b!='w')&&(c!='y')&&(d!='q')){printf("NO");}
else{printf("yes");} }

}
第一个getchar用于接受一个回车符。是输入y的时候进来的

回答2:

你第一次输入y后要敲回车
之后输入的bcd的值回车还在缓冲区,也就是把回车付给了b,b就相当于回车
你的程序如果输入。。q。。或者只要把值往后挪一个就对了
想上面那位说的,在欢迎答题后面价格getchar()就可以了,后面的不用改

回答3:

=号应该是==号,没看完,if 后面的表达应该是不对的