2016-10-25 1 views
1

Я не понимаю, почему вывод для x количества играемых игр приводит к тому же общему количеству фраз монет и тому же количеству головок и хвостов за каждый раунд игрыгенерирует случайные значения 0 и 1 многократного времени по нескольким экземплярам

int random_var(void); 

int main(void) 
{ 
    int numHEAD = 0, numTAIL = 0, cointoss, numGAME, round = 1; 

    printf("Enter the number of games you wish to play: "); 
    scanf("%d", &numGAME); 

    srand((unsigned) time(NULL)); 
    while (round <= numGAME) 
    { 

     while (numHEAD < 20 || numTAIL < 20) 
     { 
      cointoss = random_var(); 
      printf("%d\n", cointoss); 
      if (cointoss == HEAD) 
       numHEAD++; 
      if (cointoss == TAIL) 
       numTAIL++; 
    } 

    if (numHEAD == 20) 
     printf("Game Tries/Game  Event\n%-4d %d    %d HEADs\n", round, numHEAD + numTAIL, numHEAD); 
    if (numTAIL == 20) 
     printf("Game Tries/Game  Event\n%-4d %d    %d TAILs\n", round, numHEAD + numTAIL, numTAIL); 

    round++; 
    } 


return 0; 
} 


int random_var(void) 
{ 
    return rand() % 2; 
} 
+0

Ваш отступ идет к концу. Это трудно читаемый код с малым отступом. –

ответ

3

Вы никогда не перезагружаете numHEAD или numTAIL, поэтому, как только начнется первая игра, она повторит эту игру для остальных. Сделайте это:

while (round <= numGAME) { 
    int numHEAD = 0, numTAIL = 0; 
    ... 
Смежные вопросы