#include // Programa que comprueba que una matriz de Sudoku está correcta. // Versión sencilla no optimizada main() { // Tabla de sudoku con valores correctos short int Sudoku[9][9]= {{8,5,6,9,2,4,1,3,7}, {2,7,9,1,6,3,5,4,8}, {1,3,4,7,8,5,9,2,6}, {4,8,1,6,9,7,2,5,3}, {6,9,5,2,3,1,8,7,4}, {3,2,7,5,4,8,6,9,1}, {5,6,3,4,1,9,7,8,2}, {9,1,8,3,7,2,4,6,5}, {7,4,2,8,5,6,3,1,9}, }; int F, C, num; int correcto=1, esta; // RECORRO LAS FILAS for(F=0;F<9;F++) { for (num=1;num<=9;num++) { esta = 0; for (C=0;C<9;C++) { if (num == Sudoku[F][C]) { esta=1; break; } } if (esta == 0) { correcto=0; printf ("\nNo está el %d en fila %d\n", num, F+1); break; } } } // RECORRO LAS COLUMNAS for (C=0;C<9;C++) { for (num=1;num<=9;num++) { esta=0; for (F=0;F<9;F++) { if (num == Sudoku[F][C]) { esta=1; break; } } if (esta == 0) { printf ("\nNo está el %d en columna %d\n", num, C+1); correcto=0; break; } } } // Resultado final if ( correcto ) { puts("SUDOKU correcto"); } else { puts("SUDOKU incorrecto"); } getchar();getchar(); }