C-犯错的随机数

  • 本文关键字:随机数 犯错 c random
  • 更新时间 :
  • 英文 :


我正在使用骰子游戏,其中我需要掷骰子5次并总和随机数。一切都很好,但我的总和不符合我得到的随机数

for (int i = 1; i <= 5; i++)
{
    printf(" %d time dice rolled = %d n",i, rand() % s + 1);
    x += rand() % s + 1;
}
printf("--------------------------------------Sum is %d", x);
getch();
}

是骰子的侧面

您在显示信息时调用rand函数,然后在保存时再次呼叫差异。

rand的每个调用都会返回一个新值。因此,您打印的值不是与您用于总和的值相同。

解决方案是仅调用rand一次,然后将结果保存在临时变量中。类似:

int tmp;
int x = 0;
for (int i = 1; i <= 5; i++)
{
    tmp = rand();  // Only call rand once !
    printf(" %d time dice rolled = %d n",i, tmp % s + 1);
    x += tmp % s + 1;
}
printf("--------------------------------------Sum is %d", x);

最新更新