#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define BOARD_SIZE 9
void generate_sudoku(int board[BOARD_SIZE][BOARD_SIZE]) {
int i, j, k, n, count = 0;
srand(time(0)); // 初始化随机数生成器
// 初始化数阵为 0
for (i = 0; i < BOARD_SIZE; i++) {
for (j = 0; j < BOARD_SIZE; j++) {
board[i][j] = 0;
}
}
// 填充随机数字
while (count < BOARD_SIZE * BOARD_SIZE) {
i = rand() % BOARD_SIZE;
j = rand() % BOARD_SIZE;
n = rand() % (BOARD_SIZE - 1) + 1; // 生成1-9的随机数
if (board[i][j] == 0) {
board[i][j] = n;
count++;
}
}
// 打印数独
for (i = 0; i < BOARD_SIZE; i++) {
for (j = 0; j < BOARD_SIZE; j++) {
printf("%d ", board[i][j]);
}
printf("\n");
}
}
int main() {
int board[BOARD_SIZE][BOARD_SIZE];
generate_sudoku(board);
return 0;
}
c语言实现数独
这篇文章介绍了如何使用C语言编写一个函数generate_sudoku,通过随机数生成一个完整的9x9数独棋盘。程序首先初始化棋盘为全零,然后填充随机的1到9的数字,最后打印出生成的数独。
摘要由CSDN通过智能技术生成