#include #include #include #define SIZE 9 void fillArr(int arr[SIZE][SIZE]) { for (int block = 0; block < SIZE; block += 3) { int seen[10] = {0}; for (int i = 0; i < 3; i++) { int count = 0; while (count < 3) { int pos = rand() % SIZE; if (arr[block + i][pos] == 0) { int num = rand() % 9 + 1; if (!seen[num]) { arr[block + i][pos] = num; seen[num] = 1; count++; } } } for (int j = 0; j < SIZE; j++) { if (arr[block + i][j] == 0) { arr[block + i][j] = 0; } } } } } void printarr(int arr[SIZE][SIZE]) { int i,j,k,n; for(n=0;n<=6;n=n+3) { printf("|-----------------------|\n") ; for(i=n;i<=n+2;i++) { for(k=0;k<=6;k=k+3) { printf("|"); for(j=k;j<=k+2;j++) { printf(" %d",arr[i][j]); } printf(" "); } printf("|\n"); } } printf("|-----------------------|\n") ; } int main() { srand(time(NULL)); int arr[SIZE][SIZE] = {0}; fillArr(arr); printarr(arr); return 0; }