小编fub*_*ick的帖子

rand()在猜谜游戏中生成相同的数字

用C语言编程,我试图运行一个游戏,计算机生成1到100之间的数字.但是,我生成的数字一直是42 ...我的"rand()"有什么问题

#include <stdlib.h>
#include <stdio.h>
int main (void)
{
    int guess, tries = 6;
    int number = 1+(rand()%100);

    printf("Pick a number between 1 and 100:");
    scanf_s("%d", &guess);

    while(tries > 0 && guess != number)
    {
        if(guess > number)
            printf("Too high");
        else
            printf("Too low");
        puts(". Guess again:");
        scanf_s("%d",&guess);

        tries--;
    }        

    if(guess == number)
        puts("You win!");
    else
        puts("You lose");
}
Run Code Online (Sandbox Code Playgroud)

经过下面的大量讨论后,我在代码中添加了一些内容

#include <time.h>
Run Code Online (Sandbox Code Playgroud)

srand ((unsigned int)time(NULL));
Run Code Online (Sandbox Code Playgroud)

但是代码无法在MS visual studio中运行,直到我用Google搜索错误,结果发现MSVS需要在每个函数/块的顶部声明变量.执行此操作后,代码工作正常.谢谢大家,对不起多次编辑感到抱歉.更正的代码:

#include <time.h>
int main (void)
{
int guess, tries = 6, …
Run Code Online (Sandbox Code Playgroud)

c

1
推荐指数
2
解决办法
1463
查看次数

标签 统计

c ×1