GPT答: |
7i24.cn
|
#include<stdio.h>
#define N 9 //NxN的数独
//生成一个随机数组,用来模拟存储1-9的9个数
int numbers[N] = {0};
//定义数独数独表
int sudoku[N][N] = {0};
//生成随机数
void random_number()
{
for (int i=0; i<N; i++)
{
numbers[i] = i+1;
}
//将数组重新排序
for (int i=0; i<N; i++)
{
int p = (int)(1.0*N*rand()/RAND_MAX);
int q = numbers[i];
numbers[i] = numbers[p];
numbers[p] = q;
}
}
//生成数独,在数独中将每一行的数字依次调用random_number()打乱顺序
void sudoku_generate()
{
//确定每一行的数字
for (int i=0; i<N; i++)
{
//随机洗牌
random_number();
//将洗牌后的numbers数组赋给sudoku,构成一行
for (int j=0; j<N; j++)
{
sudoku[i][j] = numbers[j];
}
}
}
//打印出生成的数独
void sudoku_print()
{
for (int i=0; i<N; i++)
{
for (int j=0; j<N; j++)
{
printf("%d ", sudoku[i][j]);
}
printf("\n");
}
}
int main()
{
sudoku_generate();
sudoku_print();
return 0;
}
|