|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
就像这个代码,输入Y和N没问题,但是如果输入y,n,1,2,3效果跟N一样,
求问怎么写只能输入Y和N,或者写1,2,3等不符的会有警告字(或者提示音)
本人新手希望说的详细一点,谢谢^_^!
- #include <stdio.h>
- int main()
- {
- char a,b;
- printf("今天是否有空?(Y/N)");
- scanf("%c",&a);
-
- getchar();
-
- if('Y' == a)
- {
- printf("是否下雨?(Y/N)");
- scanf("%c",&b);
- if('Y' == b)
- {
- printf("记得带伞!\n");
- }
- else
- {
- printf("玩的愉快!\n");
- }
-
- }
- else
- {
- printf("自己玩耍 ——\n");
- }
- return 0;
- }
复制代码
本帖最后由 jackz007 于 2019-3-13 19:13 编辑
函数 getch() 用于无回显从键盘读取一个字符,其余的代码逻辑非常简单,就不用多罗嗦了吧。
- #include <stdio.h>
- #include <conio.h>
- int main()
- {
- char a , b ;
- bool f ;
- f = false ;
- for(;;) {
- printf("今天是否有空?(Y/N)") ;
- a = getch() ;
- printf("\n") ;
- if(a == 'Y' || a == 'y' || a == 'N' || a == 'n') {
- if(a == 'Y' || a == 'y') f = true ;
- break ;
- } else {
- printf("请输入 'Y' 或 'N'\n") ;
- }
- }
- if(f) {
- f = false ;
- for(;;) {
- printf("是否下雨?(Y/N)") ;
- b = getch() ;
- printf("\n") ;
- if(b == 'Y' || b == 'y' || b == 'N' || b == 'n') {
- if(b == 'Y' || b == 'y') f = true ;
- break ;
- } else {
- printf("请输入 'Y' 或 'N'\n") ;
- }
- }
- if(f) printf("记得带伞!\n") ;
- else printf("玩的愉快!\n") ;
- } else {
- printf("自己玩耍 ——\n") ;
- }
- }
复制代码
|
|