一个关于“输入Y/N,继续操作”的问题?

printf("continue or not(Y/N):");

getchar();

scanf("%c", &k);

while(k!='n' || k!='N' || k!='y' || k!='Y')

{

printf("输入有误,请重新输入:");

scanf("%c", &k);

}

if (k=='n' || k=='N')

j = 0;

while (getchar() != '\n')

continue;

目前我正在学习C语言,这是我自己编写的一段小程序,可是还没达到我要的效果

我要的效果:

运行程序后,荧屏上出现continue or not(Y/N),用户输入的第一个字母只能是Y(y)或N(n)(如果能限制只能输入一个字符就好了(*^__^*) 嘻嘻……),如果输入的第一个字母不符合要求时,荧屏就会出现一句“输入有误,请重新输入”,直到输入的字母符合要求。

如果能帮到我解决这个问题, 小弟感激不尽了 ^_^


我要变大神大神大大神
浏览 1543回答 1
1回答

guozhchun

while(k!='n' || k!='N' || k!='y' || k!='Y')这个语句会使程序陷入死循环,把“或”改为“与”while((k != 'n') && (k != 'N') && (k != 'y') && (k != 'Y'))
打开App,查看更多内容
随时随地看视频慕课网APP