【发布时间】:2018-07-10 18:23:49
【问题描述】:
我正在用 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()。你显然不想要随机的数字;您想要一组特定数字的随机顺序,这是非常不同的事情,因此生成随机数不是答案。 -
您必须跟踪已经生成的数字。围绕 rand 函数运行一个 while 循环,并在获取新的唯一数字时退出它。这是最简单的方法。这可以通过一个包含 25 个布尔值的附加数组来帮助,这些值对应于随机数的状态(已经生成 = true,新数字 = false)。我必须在这里发布它,以便@Quicky 可以看到它。否则它会被否决。
-
rand 是一个标准的 C 函数,可用于生成随机数。有关此功能质量的更多信息在这里:cboard.cprogramming.com/c-programming/…
-
@VladP:您应该将答案放在答案部分,在那里可以进行同行评审,其中可能包括反对票。不要亲自投票,我没有,在我写这篇文章的时候,我下面的回答有一个反对票。
标签: c