【发布时间】:2015-07-15 08:44:01
【问题描述】:
在我问我的问题之前,我想指出我确实已经在寻找答案,但我没有找到我想要的东西。 请记住,我是编程方面的初学者,所以请不要以为我知道所有要知道的东西。 对,问题。 我的问题是:如何将随机数生成器创建的数字相加?我遇到的困难是每次运行程序时随机生成的数字的数量都可能不同。为了更清楚,随机生成的数字的数量取决于用户的输入,例如如果输入为 9,则程序将生成 9 个随机数。这让我很难想出如何将随机数相加并显示它们的想法。 这是我的程序的源代码。我认为重要的是要提到每次运行程序时随机数都会发生变化,这就是我希望它们的样子(我使用 srand() 和 rand() )。另外,我目前遇到的问题是程序将最后一个随机生成的数字加倍,而不是把它们加在一起。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int input;
scanf("%d", &input);
int i;
int roll;
int turn_total;
time_t t;
int sum;
srand((unsigned) time(&t)); // the seed for the random number generator based on the current time
for( i = 0; i < input; i++)
{
roll = (rand() % 6 + 1); // random number generator
sum = roll+roll; // only dubbling the last roll for some reason = /
printf("You Rolled : %d\n", roll);
}
printf("The Total Turn Score is : %d", sum);
}
任何帮助、想法或线索将不胜感激。
【问题讨论】:
-
将
sum初始化为0并将sum = roll+roll改为sum = sum+roll;。 -
该死,我没想到有人这么快回答。现在完美运行,非常感谢。请您给我解释一下这背后的逻辑吗?
-
sum += roll;更短。 -
@Muffik9 您要添加两次
roll并打印它。这意味着,它只会打印最后一个输入乘以 2(即roll+roll)。执行sum = sum + roll将所有输入数字添加到sum并将其初始化为0是必要的,因为自动变量在 C 中未初始化为 0。 -
我很确定我理解你的解释。希望我不会再犯同样的错误。非常感谢:)
标签: c random numbers generator