如下程序(一个简单的if语句)
#includeint main() { int a, b; printf("请输入性别:(M/F)"); scanf("%d", &a); printf("请输入是否录取:(Y/N)"); scanf("%d", &b); if (a == 'F' && b == 'Y') printf("恭喜你女士,您已被录取!"); return 0; }
运行程序后输入M并回车却出现以下结果(未输入Y/N却已执行结束)
错误原因:程序把输入的“回车”识别为了“是否录取”
解决办法:
- 在输入性别的scanf语句中同时读取回车(注意不要忘记定义存储回车的变量)
#includeint main() { char a, e, b; printf("请输入性别:(M/F)"); scanf("%c%c", &a, &e); printf("请输入是否录取:(Y/N)"); scanf("%c", &b); if (a == 'F' && b == 'Y') printf("恭喜您,女士,您已被录取!"); return 0; }
- 在输入性别的scanf语句后再加一个getchar()语句,以读取回车
#includeint main() { char a, b; printf("请输入性别:(M/F)"); scanf("%c", &a); getchar(); printf("请输入是否录取:(Y/N)"); scanf("%c", &b); if (a == 'F' && b == 'Y') printf("恭喜您,女士,您已被录取!"); return 0; }
芜湖,突然正常起来了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)