Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    24

    [C]Problemi con array

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    46
    Non vorrei dire stupidaggini però credo che sia così

    Essendo M una matrice bidimensionale, M[i] non è che l'indirizzo del primo elemento dell'i-esima riga della matrice (ecco spiegato il numero grande che sembra casuale).

    Dovresti tenere presente che la tua matrice è bidimensionale e quindi tenere fissa una delle due dimensioni e far scorrere l'altra (M[0][0], M[0][1], M[0][2]... M[0][9]).

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    24
    grazie mille, provo e ti dico =D

  4. #4
    Devi ogni volta controllare M[i][j]...è sbagliato fare M[i] o solo M[j]...se è una matrice così deve essere trattata...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    24
    si si risolto, facendo M[0][j] funge tutto ok, grazie mille, e grazie anche al mod che mi ha cambiato il titolo del topic, in effetti questo è molto meglio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.