Ciao a tutti, dovrei realizzare una programma che simula il sudoku;
per prima cosa creo una matrice bidimensionale 9X9 e poi la riempio con la funzuione:
rand() % 9;
Fin qui tutto bene, i miei problemi arrivano quando devo assicurarmi che in ogni riga/colonna/quadrato di 3X3 non ci siano doppi numeri.
La funzione isValid serve a questo:
codice:
void isValid ( int M[9][9]){
int i, j, key;
for (i=0; i<9; i++){
key = M[i];
for(j=1; j < 9; j++){
if(key == M[j]){
printf("%d ripetuto\n", key);
return;
}
}
}
}
La mia idea, per ora controllo solamente la prima riga della matrica, è che memorizzo il primo valore della riga dentro key, e poi tramite il for interno lo contronto con il resto della riga; nel caso lo trovassi dovrei stampare il numero doppio seguito da "ripetuto".
A me invece viene stampato un numero allucintante: 2293268. Tenete presente che i numeri nella matrice vanno da 0 a 9.
Grazie in anticipo