我尝试只允许yes
或no
,如果答案是其他字母的数字,则退出问题。我应该如何添加它?
#include <stdio.h>
int main(void) {
char answer;
scanf("%c", &answer);
if (answer == 'y') {
printf("You Entered: 'y'\n");
printf("\n");
printf("your turn\n");
printf("\n");
}
else if (answer == 'n') {
printf("You Entered: 'n'");
printf("\n");
printf("other's turn\n");
printf("\n");
}
else (answer != 'y' && answer != 'n'); {
if (answer == '%d') {
printf("You Entered: '%d'\n", answer);
printf("You did not enter 'y' or 'n', program now exiting... \n");
if (answer <= 'A' || answer <='a') {
printf("You Entered: '%c'\n", answer);
printf("You did not enter 'y' or 'n', program now exiting... \n");
}
}
return 0;
}
3条答案
按热度按时间nfeuvbwi1#
您已经创建了一个
if
块,它将检查条件answer == 'y'
则在此之后存在
else if
else if(answer == 'n')
如果不满足前一条
if
语句的条件,则仅执行,根据您设置的条件执行AND,在本例中:answer == 'n'
现在,如果你想在每次用户输入不同于这两个值的任何内容时抛出一个错误,那么没有比这个更简单的解决方案了:发出
else
语句。else
语句仅在前面所有其他if
和else if
未执行时执行。最终代码可能如下所示:
lzfw57am2#
您的代码有两个问题:
1.您在代码的最后缺少一个括号,并且还有其他一些小错误。
if (answer == '%d')
此比较无效。%d
是一个格式说明符,因此它不能存储任何值。更正代码后,它应如下所示:
希望这对你有帮助。
67up9zun3#
'y'
还是'n'
返回true
或false
。然后,可以在
main
中检查该返回,并相应地执行操作。在这种情况下,如果
get_yes_or_no
返回false
,则不带else
的条件将充当哨兵,通过返回1
来阻止控制流继续。