我正在用 C 语言创建一个 5x5 棋盘游戏。我遇到的问题是,当我使用 rand() 时,它会重复一些数字。如何停止重复项和 0?
抱歉,如果问题太基础了。我是 C 的新手。
int createboard() {
int rows;
int columns;
int board[5][5];
int board2[5][5];
srand(time(NULL));
for (rows = 0; rows < 5; rows++) {
for (columns = 0; columns < 5; columns++) {
randomNumber = rand() % 25;
board[rows][columns] = randomNumber;
}
}
}
最佳答案
如果两次绘制相同数字的概率为零,
rand()
将不是特别好的生成器。
此处的标准方法是生成具有连续数字的棋盘
,然后通过随机交换元素一定次数来洗牌它。
一个好的洗牌算法是https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
关于c - 如何在 C 中停止数组中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545612/