Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Massimo riga matrice
Forum - C/C++ - Massimo riga matrice

Avatar
nadine91 (Normal User)
Newbie


Messaggi: 4
Iscritto: 06/06/2010

Segnala al moderatore
Postato alle 17:26
Domenica, 06/06/2010
Ciao a tutti, ho una matrice di dimensioni variabili ( nel senso che ogni volta che avvio il programma devo impostare il numero di righe ed il numero di colonne) e devo trovare il valore massimo di ogni riga della matrice. Per il momento riesco a trovare solamente il valore massimo di tutta la matrice, ma non di ogni riga. Qualcuno può aiutarmi? Grazie mille :asd:

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 17:39
Domenica, 06/06/2010
posta il codice che hai scritto, e descrivi il tentativo che hai fatto per trovare il massimo di ogni riga.

Il concetto è esattamente lo stesso che per trovare il massimo di tutta la matrice. Cambia davvero pochissimo nel codice...

PM Quote
Avatar
nadine91 (Normal User)
Newbie


Messaggi: 4
Iscritto: 06/06/2010

Segnala al moderatore
Postato alle 18:11
Domenica, 06/06/2010
Codice sorgente - presumibilmente C++

  1. int massimo(matrice mat, int righe, int colonne){
  2.                                                   int i, j;
  3.                                                  
  4.                                                   int max= mat[0][0];
  5.                                                  
  6.                                                   for(i=0; i<righe; i++){
  7.                                                   for(j=0; j<colonne; j++){
  8.                                                  
  9.                                                  
  10.                                                            if(mat[i][j]>max){
  11.                                                            
  12.                                                            max=mat[i][j];
  13.                                                            
  14.                                                            }
  15.                                                            }
  16.                                                            }
  17.                                                           return max;
  18.                                                          
  19.                                                          
  20.                                                            }



per ogni riga non so davvero dove mettere le mani, ho provato cambiando i cicli di for ed il risultato migliore che ho ottenuto è stato che mi ha trovato il massimo di una riga ma non delle altre... se puoi dammi una mano tu :) grazie!

Ultima modifica effettuata da nadine91 il 06/06/2010 alle 18:12
PM Quote
Avatar
nadine91 (Normal User)
Newbie


Messaggi: 4
Iscritto: 06/06/2010

Segnala al moderatore
Postato alle 18:13
Domenica, 06/06/2010
nel codice non so perchè ma non esce [ i ], quindi dove vedi mat[j] in realtà era mat[ i ][j] ovviamente.

Ultima modifica effettuata da nadine91 il 06/06/2010 alle 18:14
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 20:41
Domenica, 06/06/2010
Ciao!
Ho letto il tuo problema, e ti suggerisco di passare un verrote alla funzione massimo.
Ad ogni suo elemento, andrai a salvare il massimo di ogni riga.

PM Quote
Avatar
carmine (Member)
Pro


Messaggi: 168
Iscritto: 20/04/2010

Segnala al moderatore
Postato alle 22:46
Domenica, 06/06/2010
Codice sorgente - presumibilmente C++

  1. int dim()
  2. {
  3.     cin>>n;
  4.     return n;  
  5. }
  6. int main(void)
  7. {
  8.  
  9. cout<<" ins n ";
  10. n = dim();
  11. cout<<" ins m ";
  12. m = dim();
  13. int mat[n][m],max[n];
  14.    
  15.     for(i=0; i<n; i++)
  16.     {
  17.         for(j=0; j<m; j++)
  18.         {                                                    
  19.             cin >>mat[ i ][j];
  20.         }
  21.     }
  22.     for(i=0;i<n;i++)
  23.     {
  24.         max[ i ]=mat[ i ][0];
  25.     }
  26.     for(i=0; i<n; i++)
  27.     {
  28.         for(j=0; j<m; j++)
  29.         {                                                    
  30.             if(mat[ i ][j]>max[ i ])
  31.             {                                  
  32.                 max[ i ]=mat[ i ][j];
  33.             }
  34.         }
  35.     }
  36.     cout<<endl;  
  37.     for(i=0; i<n; i++)
  38.     {
  39.         cout<<endl;
  40.         for(j=0; j<m; j++)
  41.         {                                                    
  42.             cout<<mat[ i ][j];
  43.         }
  44.     }
  45.     cout<<endl;                                                        
  46.     for(i=0;i<n;i++)
  47.     {
  48.         cout<<max[ i ]<<" ";
  49.     }


PM Quote
Avatar
carmine (Member)
Pro


Messaggi: 168
Iscritto: 20/04/2010

Segnala al moderatore
Postato alle 22:48
Domenica, 06/06/2010
La prox volta cerca si fare l'analisi del problema, e non sparare subito istruzioni...il codice ke t ho postato funziona lo provato...spero di averti aiutato ciaoo..

PM Quote
Avatar
nadine91 (Normal User)
Newbie


Messaggi: 4
Iscritto: 06/06/2010

Segnala al moderatore
Postato alle 11:11
Lunedì, 07/06/2010
carmine purtroppo io di c++ non capisco molto...comunque ho seguito il consiglio di utilizzare un vettore per i massimi di ogni riga, e alla fine ho risolto il problema! grazie a tutti per l'aiuto! :k:

PM Quote
Avatar
carmine (Member)
Pro


Messaggi: 168
Iscritto: 20/04/2010

Segnala al moderatore
Postato alle 11:14
Lunedì, 07/06/2010
ok ok!! ;)

PM Quote