为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
我要变大神大神大大神 2016-03-21 23:39:59
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)(如果能限制只能输入一个字符就好了(*^__^*) 嘻嘻……),如果输入的第一个字母不符合要求时,荧屏就会出现一句“输入有误,请重新输入”,直到输入的字母符合要求。如果能帮到我解决这个问题, 小弟感激不尽了 ^_^
查看完整描述

1 回答

已采纳
?
guozhchun

TA贡献103条经验 获得超76个赞

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

这个语句会使程序陷入死循环,把“或”改为“与”

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


查看完整回答
2 反对 回复 2016-03-22
  • 我要变大神大神大大神
    我要变大神大神大大神
    谢谢你的提醒 这是我修改后的程序 printf("continue or not(Y/N):"); getchar(); scanf("%c", &k); while (getchar() != '\n') continue; while(k!='n' && k!='N' && k!='y' && k!='Y') { printf("输入有误,请重新输入:"); scanf("%c", &k); while (getchar() != '\n') continue; }
  • 1 回答
  • 0 关注
  • 1541 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信