Semplice dubbio

tenebrikko
ho questa matrice:

int MAT[3][3], i, j;
memset (MAT, 0, sizeof(MAT)); /* azzeramento della matrice */
for (i=0; i<3; i++)
for (j=i; j<3; j++)
MAT[j] = i+j + 1;

l'elemento MAT[2][1] è uguale a zero: perchè? devo avere fatto un errore veramente grossolano perchè il mio risultato è 4..
grazie mille!

Risposte
hamming_burst
a naso l'errore è nel secondo for

for (j=i,j<0,j++)

Questo codice guarda gli elementi nella sola matrice triangolare superiore.

Se lo scopo del programma è compilare l'intera matrice con i valori i+j+1 allora basta che metti: for(j=0,j<3,j++) e non hai problemi, perchè così hai il secondo cilco che parte sempra dalla prima posizione.
Una cosa il memset è inutile qua, perchè che fosse inizializzata o meno la matrice, l'inizializzazione non la guarderai mai.
Seconda cosa metti le graffe, e la tabulazione, è buona norma scrivere codice ben formato e tabulato, anche se banale e semplice.

int MAT[3][3], i, j;

for (i=0; i<3; i++){
     for (j=0; j<3; j++){

           MAT[i][j] = i+j + 1;
     }
}



ciao

tenebrikko
Scusami ora riscrivo anche l'altro posto con più chiarezza! :oops:
Grazie mille ora ho capito! non visualizzavo la matrice dopo la compilazione!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.