c中未声明的随机变量

jk9hmnmh  于 2023-02-21  发布在  其他
关注(0)|答案(1)|浏览(145)

我不知道为什么它给我lcol作为未声明在这个函数。
我已经在main中编写了srand(time(null)),并且我已经在main中的其他变量中使用了rand,在此函数中,这是第二次使用它。

void joueur_ordinateur(char jeton, int *a) {
  srand(time(NULL));
  do {
    int l = rand() % 9;
    int col = rand() % 9;
  } while (matrice[l][col] == '.');

  matrice[l][col] = jeton;
  for (int i = 0; i < DIMENSION; i++) {
    for (int j = 0; j < DIMENSION; j++)
      copie[i][j] = matrice[i][j];
  }

  for (int i = 0; i < DIMENSION; i++) {
    for (int j = 0; j < DIMENSION; j++) {
      capture_chaine(i, j, jeton, a);
    }
  }

  printf("\n");
}
ki0zmccv

ki0zmccv1#

为什么它给我的lcol在这个函数中是未声明的。
l, col只存在于do块内。

do {
    int l = rand() % 9;
    int col = rand() % 9;
  } while (matrice[l][col] == '.');

在函数开头定义l, col

void joueur_ordinateur(char jeton, int *a) {
  srand(time(NULL));
  int l, col;
  do {
    l = rand() % 9;
    col = rand() % 9;
  } while (matrice[l][col] == '.');

考虑到“我已经在main中编写了srand(time(null))”,在joueur_ordinateur()中不需要它。

void joueur_ordinateur(char jeton, int *a) {
  // srand(time(NULL));
  int l, col;
  ...

相关问题