C:为什么数组中的所有元素都相同

问题描述:

函数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://*.com/questions/7343833/srand - 为什么 - 呼叫它一次只能-/) –

您应该将srand(time(NULL));移出rand_char()srand应该在for循环之前完成一次,而不是每次都在rand_char()