给你改了一下:
#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的时候进来的
你第一次输入y后要敲回车
之后输入的bcd的值回车还在缓冲区,也就是把回车付给了b,b就相当于回车
你的程序如果输入。。q。。或者只要把值往后挪一个就对了
想上面那位说的,在欢迎答题后面价格getchar()就可以了,后面的不用改
=号应该是==号,没看完,if 后面的表达应该是不对的