gpt4 book ai didi

c - 猜随机数冷热游戏输出

转载 作者:行者123 更新时间:2023-11-30 15:31:26 26 4
gpt4 key购买 nike

尝试使用代码块 C 语言构建一个程序:

  1. 生成一个从 1 到 100 的随机 secret 数字,并要求用户猜测该数字。
  2. 如果用户猜测正确,则打印猜测是正确的。
  3. 对于第一个猜测,如果不正确,应该说热。
  4. 告诉用户,如果他的猜测越来越接近 secret ,他就会变得很热。
  5. 如果他的猜测距离较远,则可能会冷淡。
  6. 游戏继续进行,直到猜出 secret 数字为止。

我当前的程序对于猜测是热还是冷给出了错误的输出,也不确定我应该在哪里放置 ( vs { 如果有的话或者放在哪里使用 "if""else if"。如果不是太多,请解释更改。

#include <stdio.h>
#include <stdlib.h>
#define MAX_VAL 100

int main(void)
{
int next_guess, first_guess, secret, distance;
srand(time(0));

secret = 1 + rand()%MAX_VAL;
distance = (secret - first_guess);

while (first_guess != secret) {
printf(" enter your guess from (1 to %d)?\n", MAX_VAL);
scanf("%d", &first_guess);

{

if (first_guess == secret)
printf("You guessed correctly!\n");

if (first_guess != secret)
printf("Your guess was hot enter your next guess from (1 to %d)?\n", MAX_VAL);
scanf("%d", &next_guess);

if (next_guess == secret)
printf("You guessed correctly!\n");

if ((next_guess-secret) < distance)
printf("Your guess was hot,");

if ((next_guess-secret) >= distance)
printf("Your guess was cold,");

}
}
return 0;
}

最佳答案

你的代码

if (first_guess != secret)
printf("Your guess was hot enter your next guess from (1 to %d)?\n",
MAX_VAL);
scanf("%d", &next_guess);

并没有做你想象的那样,if 语句只会影响 printf 语句,而不影响 scanf 语句。您应该将语句括在大括号中

if (first_guess != secret)
{
printf("Your guess was hot enter your next guess from (1 to %d)?\n",
MAX_VAL);
scanf("%d", &next_guess);
}

我不喜欢使用 scanf() 进行键盘输入,因此我会使用 fgets() 来指定最大大小缓冲区,然后将值转换为整数,或者使用 sscanf() 进行转换

char buffer[32];
fgets( buffer, sizeof(buffer), stdin );
next_guess = atoi( buffer );

or

char buffer[32];
fgets( buffer, sizeof(buffer), stdin );
sscanf( buffer, "%d", &next_guess );

您应该始终初始化 C 中的所有变量

int next_guess = 0, first_guess = 0, secret, distance = 0;

关于c - 猜随机数冷热游戏输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24817489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com