2016-12-28 73 views
0

函數rand_char用於生成將被分配給字符串的隨機字母。C:爲什麼數組中的所有元素都相同

char rand_char(){ 
    char rand_ch; 
    srand(time(NULL)); 
    rand_ch = rand() %26 +'A'; 
    return rand_ch; 
} 
for (j=0; j<7; j++){ 
    game->players[0].hand[j].letter = rand_char(); 
} 

如果我檢查的printf( 「%C」,遊戲 - >玩家[0] .hand [j]的.letter);所有元素都有相同的字母。但他們應該有不同的隨機字母。

+1

還有一個重複的['srand()' - 爲什麼只調用一次?](http://stackoverflow.com/questions/7343833/srand - 爲什麼 - 呼叫它一次只能-/) –

回答

4

您應該將srand(time(NULL));移出rand_char()srand應該在for循環之前完成一次,而不是每次都在rand_char()

相關問題