我对 C 有点陌生,但我在使用各种不同的语言时遇到了同样的问题。使用 srand(time(NULL)) 生成随机数时,第一次输出的值很好,但之后的任何时候它都保持相同的值。我尝试将所有变量重置为上面的新值,但没有效果。
while(Ui <= (uInput - 1))
{
printf("Input answer %d: ", (Ui + 1));
scanf("%d", &answers[Ui]);
Ui++;
srand(time(NULL));
a = (rand() % 25 + 1) - (rand() % 25 + 1);
b = (rand() % 25 + 1) - (rand() % 25 + 1);
c = (rand() % 25 + 1) - (rand() % 25 + 1);
d = (rand() % 25 + 1) - (rand() % 25 + 1);
e = (rand() % 25 + 1) - (rand() % 25 + 1);
f = (rand() % 25 + 1) - (rand() % 25 + 1);
g = (rand() % 25 + 1) - (rand() % 25 + 1);
h = (rand() % 25 + 1) - (rand() % 25 + 1);
i = (rand() % 25 + 1) - (rand() % 25 + 1);
j = (rand() % 25 + 1) - (rand() % 25 + 1);
}
这个想法是打印出多个 10 变量方程,变量 aj 表示方程中每个变量的系数。问题是无论我做什么,它每次都会生成并打印相同的方程,它不会为变量重新分配新的随机值。
作为旁注,我知道我的代码现在看起来并没有完成任何事情,但这只是我复制、粘贴和修改的一个片段,因此您可以看到我分配随机值的方法。
我非常感谢任何帮助、反馈或支持。