Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Scritta così

    codice:
         int aux,z;
         for(z=0;z<r;z++)
    		for(i=0;i<r;i++)
    		{
    			for(j=0;j<c-1;j++)
    			{
    				if(matr[i][j]>matr[i][j+1])
    				{
    				        aux=matr[i][j];
                                            matr[i][j]=matr[i][j+1];
                                            matr[i][j+1]=aux;
                                    }
    			}
    		}
    hai il risultato che ti attendi ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  2. #12
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106
    Grazie tante ! Perchè metti j<c-1? e non j<c (come faccio io sbagliando ovviamente )

  3. #13
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Perché con l'indice j tu accedi all'elemento j+1 durante il confronto e lo scambio.

    Se usassi c invece di c-1 tu accederesti ad un elemento dell'array che non esiste.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #14
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106
    Per caso serve per non fare confrontare l'ultimo elemento x esempio della prima riga con il primo elemento della seconda riga??

  5. #15
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106
    A ecco grazie mille per la risposta e per l'aiuto che mi hai dato

  6. #16
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106
    Un altra cosa la matrice che ho dichiarato in gestione posso passarla a qualche altra sotto funzione tramite puntatori?
    perchè se io dichiaro la funzione
    void inserimento(int, int, int *);
    ...
    ...
    la metto in gestione dopo avere dichiarato la matrice
    void gestione()
    {
    ...
    ...
    int matr[r][c];
    inserimento(r, c, matr);
    ...
    ...
    ..
    }

    e faccio così:
    void inserimento(int r, int c, int *matr)
    {
    ...
    ...
    ...
    }
    MI da i seguenti errori:
    In function `gestione_matr':
    [Warning] passing arg 3 of `inserimento' from incompatible pointer type
    In function `inserimento':
    subscripted value is neither array nor pointer
    [Build Error] [main.o] Error 1

    Quindi penso che non si può passare o meglio non la so passare tramite puntatori...

  7. #17
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Allora ... nel caso di valori costanti per RMAX e CMAX, scrivi

    codice:
    #define RMAX 3
    #define CMAX 3
    
    void inserimento(int r, int c, int matr[][CMAX])
    {
    ...
    }
    
    int main()
    {
       int matr[RMAX][CMAX];
    
       ...
       inserimento(r, c, matr);
       ...
    }
    altrimenti alloca dinamicamente la matrice utilizzando un "doppio puntatore"

    int **matr;

    ma forse adesso non lo sai fare.

    Per usare il puntatore, dovresti chiamare la inserimento così

    inserimento(r, c, &matr[0][0]);

    ma avresti problemi all'interno della funzione nell'accedere al singolo elemento in quanto avresti solamente il puntatore all'inizio della matrice. Dovresti sommare il puntatore e sommare le "coordinate" x e y in modo corretto ... non è affatto comodo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #18
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Memorizza tutte le righe della matrice su un unico array, poi per accedere all' elemento di riga i-esima e colonna j-esima usi l' indice [i*N+j].

  9. #19
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    106
    Ok grazie a quanto ho capito non è una cosa semplice lascio tutto per com'è.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.