我正在用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;
}
}
}
答案 0 :(得分:8)
rand()
将不会是一个特别好的生成器。
这里的标准方法是生成具有连续数字的board
,然后通过随机交换元素一次 shuffle 。
一个好的改组算法是https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
答案 1 :(得分:1)
使用srand()函数代替rand函数。 rand()将在每个程序后给出相同的数字。 请参考此处寻求帮助。这是为了改进你的程序,这不是答案 Rand() vs srand() function
答案 2 :(得分:0)
自downvoted后删除。这就是它被移除的原因。