|_Mayhem_|
27-04-2008, 12:23
salve a tutti!
mi è stato assegnato un esercizio a scuola che chiede di:
"riempire un array bidimensionale di 10x10 con numeri da 1 a 10 e calcolare la somma della diagonale"
vi posto il mio codice:
#include <stdio.h>
int main(){
int bidimensionale[10][10];
int i,j,somma_diagonale=0;
for(i=0;i<10;i++){
for(j=0;j<10;j++){
bidimensionale[i][j]=j+1;
printf("%d ",bidimensionale[i][j]);
}
printf("\n");
}
printf("\nvalori della diagonale:\n\n");
for(i=0;i<10;i++){
for(j=0;j<10;j++){
if(i=j)
somma_diagonale=somma_diagonale+bidimensionale[i][j];
printf("%d ",bidimensionale[i][j]);
}
}
printf("\n\nsomma della diagionale: %d\n\n",somma_diagonale);
system("PAUSE");
return 0;
}
e l'output:
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
valori della diagonale:
1 2 3 4 5 6 7 8 9 10
somma della diagionale: 54
Press any key to continue . . .
perche 54 la somma quando dovrebbe essere 55?? :muro: :muro: :muro:
ho verificato tramite i printf che i valori siano inseriti correttamente nell'array e che nella diagonale siano effettivamente presenti quei valori... dunque c'è qualcosa che va storto nella somma e viene lasciato via -presumibilmente- il primo valore della diagonale, ovvero 1.
che c'è che non va nel codice? :cry:
mi è stato assegnato un esercizio a scuola che chiede di:
"riempire un array bidimensionale di 10x10 con numeri da 1 a 10 e calcolare la somma della diagonale"
vi posto il mio codice:
#include <stdio.h>
int main(){
int bidimensionale[10][10];
int i,j,somma_diagonale=0;
for(i=0;i<10;i++){
for(j=0;j<10;j++){
bidimensionale[i][j]=j+1;
printf("%d ",bidimensionale[i][j]);
}
printf("\n");
}
printf("\nvalori della diagonale:\n\n");
for(i=0;i<10;i++){
for(j=0;j<10;j++){
if(i=j)
somma_diagonale=somma_diagonale+bidimensionale[i][j];
printf("%d ",bidimensionale[i][j]);
}
}
printf("\n\nsomma della diagionale: %d\n\n",somma_diagonale);
system("PAUSE");
return 0;
}
e l'output:
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
valori della diagonale:
1 2 3 4 5 6 7 8 9 10
somma della diagionale: 54
Press any key to continue . . .
perche 54 la somma quando dovrebbe essere 55?? :muro: :muro: :muro:
ho verificato tramite i printf che i valori siano inseriti correttamente nell'array e che nella diagonale siano effettivamente presenti quei valori... dunque c'è qualcosa che va storto nella somma e viene lasciato via -presumibilmente- il primo valore della diagonale, ovvero 1.
che c'è che non va nel codice? :cry: