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:
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".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; } } } }
A me invece viene stampato un numero allucintante: 2293268. Tenete presente che i numeri nella matrice vanno da 0 a 9.
Grazie in anticipo

Rispondi quotando
