#define MAX_TIMES 100
#define ARR_SIZE 9
#define MAX_NUM 10
void createNumArr(int arr[ARR_SIZE][ARR_SIZE])
{
int i = 0;
int j = 0;
int k = 0;
int tmp = 0;
int flag = 0;
int times = 0;
srand(time(NULL));
do
{
times = 0;
for (i = 0; i < ARR_SIZE; i++)
{
for (j = 0; j < ARR_SIZE; j++)
{
do
{
flag = 0;
tmp = rand() % MAX_NUM;
times++;
if (0 == tmp)
{
flag = 1;
}
for (k = 0; (k < j) && (flag != 1); k++)
{
if (tmp == arr[i][k])
{
flag = 1;
break;
}
}
for (k = 0; (k < i) && (flag != 1); k++)
{
if (tmp == arr[k][j])
{
flag = 1;
break;
}
}
if (times > MAX_TIMES)
{
break;//jump out inner do-while
}
}
while (flag);
if (times > MAX_TIMES)
{
break;//jump out inner for circle
}
arr[i][j] = tmp;
times = 0;
//printf("arr[%d][%d]=%d\n", i, j, tmp);
}
if (times > MAX_TIMES)
{
break;//jump out outter for circle
}
}
}
while (times > MAX_TIMES);
}
int isSodoArr(int arr[ARR_SIZE][ARR_SIZE])
{
int i = 0;
int j = 0;
for (i = 0; i < ARR_SIZE; i++)
{
for (j = 0; j < ARR_SIZE; j++)
{
//do something
}
}
return 1;
}
数独数组生成
最新推荐文章于 2024-02-29 16:50:15 发布