前景:
我创建了一个二维数组,并将所有元素初始化为‘0’
在用rand函数创建随机值进行二维数组元素替换
注:以下代码不完整,为问题所在的部分代码
#define ROW 9
#define COL 9
#define ROWS ROW+2
#define COLS COL+2
#define EASY_count 10
#include <time.h>
#include <stdlib.h>
void Setmine(char board[ROWS][COLS], int row, int col)//我创建的一个函数 row,col 的接收值都是9
{
int count = EASY_count;
while (count)
{
int x = 1 + rand() % row;//在前面的函数内已经用srand函数利用时间戳生成rand函数的随机起点值
int y = 1 + rand() % col;//将x y 的值限制在1-9之间
if (board[x][y] == '0')
{
count--;
board[x][y] = '1';//将元素‘0’ 替换为‘1’
}
}
}
理想运行结果为将二维数组内的随机10个元素‘0’替换为‘1’
实际运行结果为 替换元素的个数是随机数,也就是说被替换的元素个数并不固定
这里的while 循环 和if判断都没有问题
只有当count的值为零的时候才会停止循环 至少循环10次
至少有10个元素被替换 但实际替换个数没有10个
想知道错误原因(或错误的可能原因)以及解决方法
万分感谢!