【发布时间】:2016-06-26 01:51:52
【问题描述】:
C语言中的随机数猜谜游戏。
用户有 10 次猜测,如果没有猜到正确的数字,游戏将退出。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int theNumber;
int userGuess;
int counter = 10;
int lowerBound = 1, upperBound = 100;
// seed function
srand((unsigned)time(NULL));
// generates number between 1 and 100
theNumber = lowerBound + rand() % (upperBound - lowerBound + 1);
printf("Please guess a number (1-100): ");
for (counter = 9; counter <= 10; counter--) {
// get users guess
scanf("%d", &userGuess);
if (userGuess == theNumber) {
printf("You guessed it! The number was: %d", theNumber);
break;
}
if (userGuess < theNumber && counter >= 1)
printf("Your guess was too low. You have %d guesses remaining. Guess higher: ", counter);
if (userGuess > theNumber && counter >= 1)
printf("Your guess was too high. You have %d guesses remaining. Guess lower: ", counter);
if (counter == 0) {
printf("\nYou ran out of guesses. The number was: %d \n", theNumber);
break;
}
}
return 0;
}
示例输出:
Please guess a number (1-100): 100
Your guess was too high. You have 9 guesses remaining. Guess lower: 90
如何在第一个 printf 语句之后添加一个空格,以使输出看起来像这样?
期望的输出:
Please guess a number (1-100): 100
Your guess was too high. You have 9 guesses remaining. Guess lower: 90
【问题讨论】:
-
我试过了。如果我将 \n 放在第一个 printf 语句之后,用户首先猜测会中断到下一行,我不希望这种情况发生。如果可能的话,我希望它保持在第一行的右侧。
-
认真的吗?为什么还要尝试?提示:如果你想在输入之后打印一些东西,在逻辑上打印之前输入是行不通的。
-
我很抱歉。我有点困惑。你是说完成我想做的事情在逻辑上是不可能的?
-
printf("\n你的猜测太高了。你还有 %d 次猜测。猜低: ", counter);注意你的之前的\n
-
空格不是编程中的换行符(但两者都是空白字符)。你要求换行,所以不要谈论空格。使用正确的短语可以大大提高问题的可读性和可理解性。