#include <stdio.h>
#include <stdbool.h>
// Sudoku solution must satisfy all of the following rules:
// Each of the digits 1-9 must occur once in each row.
// Each of the digits 1-9 must occur once in each column.
// Each of the digits 1-9 must occur once in each 3x3 grid.
#define SIZE 3
bool isValidSudoku3x3Grid(int grid[SIZE][SIZE]) {
int seen[10] = {0}; // Array to track numbers 1-9
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
int num = grid[i][j];
if (num < 1 || num > 9 || seen[num]) {
return false; // Invalid if number is out of range or repeated
}
seen[num] = 1;
}
}
return true; // Valid if all numbers 1-9 appear exactly once
}
void printResult(bool valid) {
if (valid) {
printf("The grid is a valid Sudoku grid!\n");
} else {
printf("The grid is NOT a valid Sudoku grid!\n");
}
}
int main() {
int grid[SIZE][SIZE] = {
{5, 3, 4},
{6, 7, 2},
{1, 9, 8}
};
printResult(isValidSudoku3x3Grid(grid));
return 0;
}
/*
run:
The grid is a valid Sudoku grid!
*/