模拟C中2个骰子滚动的程序(如何解决我不正确的输出?)

问题描述 投票:0回答:1

我必须掷两个骰子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;
}``` 
c arrays random dice
1个回答
1
投票

更正了几行代码:

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
© www.soinside.com 2019 - 2024. All rights reserved.