Stampa a video della riga di una matrice avente il max della matrice.

di Anonimizzato23817 il
5 risposte
Buongiorno ragazzi. ho scritto la parte di codice che dovrebbe stampare a video il vettore riga avente il max numero della matrice.
Nelle define ho definito la mat quadrata 3x3.
con il seguente codice però mi stampa a video sempre e solo la seconda riga qualsiasi siano i numeri inseriti.. mi aiutate a capire il perchè?


for (i=0, j=0; j<C; j++)
{
	if (mat3[i][j] > max1)
	max1=mat3[i][j];

}
for (i=1, j=0; j<R;j++)
{
	if (mat3[i][j] > max2)
	max2=mat3[i][j];
}

for (i=2, j=0; j<C; j++)
{
	if (mat3[i][j] > max3) 
	max3=mat3[i][j];

}


if (max1>max2 && max1 > max3)
printf ("\n\n%d %d %d "  , mat3[0][0], mat3[0][1], mat3[0][2]);
else if (max2>max1 && max2>max3)
printf("%d %d %d "  , mat3[1][0], mat3[1][1], mat3[1][2]); 
else 
printf ("%d %d %d " , mat3[2][0], mat3[2][1], mat3[2][2]);

5 Risposte

  • Guarda ... è proprio sbagliato ...

    Il massimo deve essere uno solo ... (max) e deve avere un valore di partenza (va bene il valore della prima cella della matrice.

    Poi devi costruire due for uno dentro l'altro, uno per le righe e uno per le colonne.

    Cerchi il massimo esplorando righe e colonne e mantenendo in una variabile il numero di riga in cui trovi il massimo.
  • Anche se devo stampare la riga avente il max?
    poi il max deve essere inizializzato: max=mat[j]?
  • Sì ... oltre al max devi conservare la rigamax e quella la utilizzi per visualizzarla.

    Ti ho detto inizializzata alla prima cella. Qual è la prima cella?
  • Ah ok quindi sarebbe mat[0][0].
    Mentre non ho capito la questione della riga perdonami.
  • Prova a scrivere il semplice codice che visualizza tutti gli elementi della matrice, ogni elemento in ogni riga.
Devi accedere o registrarti per scrivere nel forum
5 risposte