我必须掷两个骰子36,000次,并使用一维数组计算每个数字出现的次数(2-12,其中7为最频繁的总和,2和12为最不频繁的总和)。我的输出刚好是整个表为0。我究竟做错了什么?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int diceRoll(int die1, int die2, int tally[]);
int main(void) {
int x;
int y;
int z[13] = {0};
int sums = diceRoll(x, y, z);
srand(time(NULL));
for (int i = 2; i <= 12; i++)
{
printf("%3d%12d\n", i,sums);
sums += sums;
}
printf( "\nTotal number of rolls is %d",sums );
return 0;
}
int diceRoll(int die1, int die2, int tally[]) {
for(int i = 1; i <= 36000; i++) {
die1 = 1 + rand() % 6;
die2 = 1 + rand() % 6;
tally[die1 + die2]++;
}
return 0;
}```
更正了几行代码:
for (int i = 2; i <= 12; i++)
{
printf("%3d%12d\n", i,z[i]);
sums += z[i];
}
printf( "\nTotal number of rolls is %d\n",sums );
2 989
3 2009
4 3052
5 4091
6 4983
7 5965
8 4897
9 4048
10 3066
11 1965
12 935