Richiamo funzione per scambio valori nella matrice

di il
5 risposte

Richiamo funzione per scambio valori nella matrice

Ciao a tutti sono nuovo del forum!
Nel costruire il gioco dei 15 ho un problemino nel richiamare la procedura....

La procedura è una semplice procedura di scambio
void scambia ( int a, int b )
{ int tmp;
  tmp=a;
  a=b;
  b=tmp; }
Nel corso del programma ad esempio
la utilizzo in questo modo:
scambia( mat[r][c], mat[r-1][c] )
Però lo scambio non avviene.... penso sia dato dal fato che nella procedura utilizzo variabili semplici mentre nel main matrice e posizione... ma come posso rimediare??

Grazie anticipatamente

5 Risposte

  • Re: Richiamo funzione per scambio valori nella matrice

    Così
    
    void scambia ( int &a, int &b )
    
  • Re: Richiamo funzione per scambio valori nella matrice

    Ti rigranzio, ora funziona!!!
    Mi dispiace ma devo chiedere un'altra delucidazione...
    Nel programma, mischiati i 16 numeri, prendo in entrata un numero da 0 a 3 che corrisponde allo spostamento del 16, di volta in volta richiamo la funzione di controllo per vedere se è arrivato alla soluzione l'utente in questo modo
    con=controllo (mat)
    Tutto ok, ma nella funzione del controllo mi esce un errore strano
    int controllo(int mat)
    { int i,j,num;
      bool con;
      num=0;
        for ( i=0; i<=3; i++ )
          for ( j=0; j<=3; j++ )
            {num++;
             if ( mat[i][j]!=num ) // qui esce invalid types `int[int]' for array subscript 
               return false;
             else 
                con=true;}
      return con; }

    Grazie anticipatamente
  • Re: Richiamo funzione per scambio valori nella matrice

    Quante righe e quante colonne ha la matrice? se 3x3 qui hai un errore
    
    for ( i=0; i<=3; i++ )
          for ( j=0; j<=3; j++ )
    
    i = 3 e j = 3 non sono posizioni valide. gli indici vanno da 0 a 2.
  • Re: Richiamo funzione per scambio valori nella matrice

    Stai usando degli indici su un'array che è definito diversamente
  • Re: Richiamo funzione per scambio valori nella matrice

    La matrice è 4*4, per intenderci il gioco è
    Cmq l'errore stava nel fatto che non ho messo mat[4][4] in entrata invece del solo mat....
    e anche altre solite cosucce....


    Grazie a tutti!
Devi accedere o registrarti per scrivere nel forum
5 risposte