Sudoku Programacion en C

Este Programa verifica si un sudoku completo esta bien echo. Solo le falta una funcion que analize los subgrupos.

#include<stdio.h>
#define subgrupo 3 //Valor del subgrupo
#define filas 9 //Cambiar el # de Filas
#define columnas 9 //Cambiar el # de Columnas

int analizaFilas(int[][columnas]); 
int analizaColumnas(int[][columnas]);
int analizaSubgrupo(int[][columnas]);

int main (){ 
int x,y,z;
int matriz [filas][columnas]=
{
{9 , 6 , 4 , 2 , 3 , 7 , 8 , 5 , 1},
{8 , 1 , 7 , 4 , 5 , 6 , 2 , 3 , 9},
{5 , 2 , 3 , 1 , 8 , 9 , 7 , 4 , 6},
{6 , 4 , 2 , 3 , 9 , 1 , 5 , 8 , 7},
{7 , 9 , 5 , 8 , 6 , 2 , 3 , 1 , 4},  //Matriz 9*9
{1 , 3 , 8 , 5 , 7 , 4 , 6 , 9 , 2},
{2 , 8 , 1 , 6 , 4 , 5 , 9 , 7 , 3},
{3 , 7 , 6 , 9 , 1 , 8 , 4 , 2 , 5},
{4 , 5 , 9 , 7 , 2 , 3 , 1 , 6 , 8},
};

for(int i=0; i<filas; i++){  //Imprime Sudoku
for(int j=0; j<columnas; j++){
printf("%d", matriz[i][j]);
if(j==2||j==5)printf("|");
}
printf("\n");
if(i==2||i==5){
printf("---+---+---");
printf("\n");
}
printf("\n");
}
x=analizaFilas(matriz);
y=analizaColumnas(matriz);
if(x==0 && y==0){
printf("\n\nEl Sudoku esta correcto");
}else{
printf("\n\nEl sudoku esta Incorrecto");
}

return 0;
}
int analizaFilas(int s[][columnas]){  //Analiza las Filas
int cont=0; 
for (int k=0; k<filas; k++){
for (int i=0; i<filas; i++){
for(int j=i+1; j<columnas; j++){
if (s[k][i]== s[k][j]){cont=cont+1;}
}
}
}
return cont;
}
int analizaColumnas(int s[][columnas]){   //Analiza las Columnas
int cont=0; 
for(int k=0; k<filas; k++){
for(int i=0; i<filas; i++){
for(int j=k+1; j<columnas; j++){
if(s[k][i]==s[j][i]){cont=cont+1;}
}
}
}
return cont;
}

0 comentarios:

Publicar un comentario

Aqui puedes publicar algun comentario, duda, sugerencia, problema, agradecimiento o lo que quieras. Ten en cuenta que el comentario será moderado antes de salir publico.