小编roo*_*xox的帖子

rand() 函数生成错误范围内的数字

我猜数字游戏有问题。该程序由2部分组成。在第一部分,用户尝试猜测计算机随机生成的数字。在第 2 部分,计算机尝试估计用户输入的数字。第 1 部分没有问题,但在第 2 部分,计算机在进行预测时会估计不提供范围的值。所以,我在rand()函数中使用变量a和b创建了1到1000之间的数字,并定义为a = 1 b = 1000。计算机根据用户的回答不断缩小这个范围。

例如,用户输入了数字649,如果计算机估计为800,则相关部分正在工作,并且b的新值是800,而不是1000,因此更新上限。如果计算机估计为 200,则相关部分再次工作,a 的新值是 200,当循环回绕时,产生的是 200 到 800 之间的数字,而不是 1 到 1000 之间的数字。 但问题是即使值更新后,计算机生成一个大于 800 的数字(例如,1246)。这正是问题所在。

我必须在星期二交付这项作业,但我仍然无法找到解决此错误的方法。我正在向您发送源代码,并详细写下了我使用的每个变量如何作为注释编号。如果需要,我可以发送错误的视频描述。请帮我。

为了帮助您更快地找到和测试问题,我禁用了一些带有注释行向用户提问的行。

/*
                VARIABLES

    a=          rand() fonction min limit.
    b=          rand() fonction max limit.
    i=          attempts of user
    j=          attempts of computer
    rnd1=       The computer generated number that the user is trying to find.
    rnd2=       The number generated by the computer when estimating the number entered by the user and changing in each …
Run Code Online (Sandbox Code Playgroud)

c c++ random loops while-loop

6
推荐指数
1
解决办法
142
查看次数

标签 统计

c ×1

c++ ×1

loops ×1

random ×1

while-loop ×1