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);所有元素都有相同的字母。但他们应该有不同的随机字母。
答
您应该将srand(time(NULL));
移出rand_char()
。 srand
应该在for
循环之前完成一次,而不是每次都在rand_char()
还有一个重复的['srand()' - 为什么只调用一次?](http://*.com/questions/7343833/srand - 为什么 - 呼叫它一次只能-/) –