Matrici di caratteri

di il
5 risposte

Matrici di caratteri

Buongiorno , sono alla prese con questo esercizo:
/*Scrivere un programma C in grado di:
– Caricare da tastiera una matrice di caratteri con N righe ed M colonne
– Stampare a video la matrice inserita
– Stampare a video la posizione dell’elemento minimo di ogni riga della matrice
*/
I primi due punti non mi hanno dato problemi infatti sia il caricamento che la stampa funzionano, il mio problema e' il terzo punto. Ho provato a farlo però tutto quello che ho elaborato non mi hanno portata ad una corretta soluzione. Potreste aiutarmi a trovare la soluzione?
Questo e' l'ultimo codice che ho provato:

min=0;
 for(i=0; i<RIGHE; i++){
  for(j=0; j<COLONNE; j++){
    if(m[i][j]<m[i][j+1]){
      min=j;
    }
    else{
     min=j+1;
    }
  }
  printf("L'elemento piu' piccolo della riga %d si trova in posizione %d!\n\n", i, min);
 }

5 Risposte

  • Re: Matrici di caratteri

    Ciao.

    Perchè il tuo confronto è sbagliato. Nella tua variabile min memorizzi giustamente la posizione della colonna con valore minimo e devi utilizzare questo indice come riferimento dell'elemento da confrontare. Come lo fai tu confronti sempre un valore della riga con quello successivo (non ha senso) mentre tu devi confrontare l'elemento j-simo con quello con indice uguale min. Se minore cambiare min. Naturalmente se tu setti min=0 all'inizio puoi anche iniziare direttamente da j=1 però ricorda che min=0 va settato all'inizio del primo ciclo for.
  • Re: Matrici di caratteri

    Eduadie ha scritto:


    devi utilizzare questo indice come riferimento dell'elemento da confrontare.
    Ho capito perfettamente il tuo ragionamento, dovrei praticamente utilizzare il valore che salvo nella variabile min per confrontare gli altri elementi della riga.
  • Re: Matrici di caratteri

    
     for(i=0; i<RIGHE; i++){
      for(j=1; j<COLONNE; j++){
        if(m[i][min]>m[i][j]){
          min=j;
        }
      }
      printf("L'elemento piu' piccolo della riga %d si trova in posizione %d!\n\n", i, min);
     }
    
    Potrebbe essere una soluzione? Da quello che stampa a video penso sia corretto.
  • Re: Matrici di caratteri

    Si la soluzione è quella. Però ti ricordo che min=0 va messo nel primo for poichè ad ogni riga deve essere azzerato.
  • Re: Matrici di caratteri

    Ok grazie mille
Devi accedere o registrarti per scrivere nel forum
5 risposte