如何在C中停止数组中的重复值

Qui*_*App 2 c

我正在用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;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Bat*_*eba 8

rand() 如果两次绘制相同数字的概率为零,那么它将不是一个特别好的发电机.

这里的标准方法是生成board具有连续数字的数据,然后通过随机交换元素一定次数来对其进行混洗.

一个很好的改组算法是https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle