printing - C - 当我回答正确答案时,我的代码没有打印 [first] IF 语句 - 为什么?
问题描述
猜谜游戏:请从 1-100 中猜出正确的数字。However, when the secretNumber
is chosen, printf("You got the secret number correct!");
does not execute. 为什么是这样?所有其他printf
语句都执行。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int secretNumber = 37;
int guess;
int guessCount = 0;
int guessLimit = 3;
int outOfGuesses = 0;
printf("Enter a number between 1 and 100: ");
/* NOT PRINTING */
scanf("%d", & guess);
guessCount = guessCount + 1;
while (guess != secretNumber && outOfGuesses == 0) {
if (guessCount < guessLimit) {
if (guess == secretNumber) {
printf("You got the secret number correct!");
scanf("%d", & guess);
} else if (guess < secretNumber) {
printf("Enter a higher number: ");
scanf("%d", & guess);
} else if (guess > secretNumber) {
printf("Enter a lower number: ");
scanf("%d", & guess);
}
guessCount = guessCount + 1;
} else {
printf("You are out of guesses.");
}
}
return 0;
}
解决方案
while
这是因为您在到达内部之前制动了循环if
。您应该重构代码,以便在 print 之前只进行一次正确的数字检查"You got the secret number correct!"
。像这样的东西:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
int secretNumber = 37;
int guess;
int guessCount = 0;
int guessLimit = 3;
int outOfGuesses = 0;
printf("Enter a number between 1 and 100: ");
scanf("%d", &guess);
guessCount = guessCount +1;
while (guessCount < guessLimit){
if (guess == secretNumber){
printf("You got the secret number correct!");
break;
}
else if (guess < secretNumber){
printf("Enter a higher number: ");
scanf("%d", &guess);
}
else if (guess > secretNumber){
printf("Enter a lower number: ");
scanf("%d", &guess);
}
guessCount = guessCount + 1;
}
if (guessCount == guessLimit){
printf("You are out of guesses.");
}
return 0;
}
推荐阅读
- java - 即使使用设置,Eclipse 内容辅助自动完成也无法正常工作
- python - 字符串包含换行符 (\n),如何使用正则表达式将 \n 替换为 \n?
- c++ - 对全局变量的非常量引用的无效初始化
- r - r 中的最大值
- html - 为什么 Microsoft Edge 强调此跨度并将其视为链接?
- jdbc - 使用 IBM JDK 与 OpenJDK 通过 JDBC 连接到 z/OS 上的 Db2
- asp.net-web-api - ASP.NET Web API 2 - 状态和静态范围
- android - Android WebView 不在 Chrome 78 中呈现 iframe 内容
- c++ - 需要帮助使用类获取矩形和圆形的面积
- forms - 如何在输入文本字段Vue JS中仅禁用前导空格