Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - come calcolare la somma dei valori delle diagonali destre?
Forum - C/C++ - come calcolare la somma dei valori delle diagonali destre?

Avatar
ciao888 (Normal User)
Pro


Messaggi: 69
Iscritto: 14/10/2010

Segnala al moderatore
Postato alle 13:03
Venerdì, 22/10/2010
ho visto che un professore, costruita una matrice quadrata, le calcola in questo modo:
Codice sorgente - presumibilmente C++

  1. void somma_diagonale(int r, int M[][10], int v[]) // r è la dimensione della matrice che puo' essere max10
  2. {
  3. int somma = 0
  4. for(int i=0; i<r; i++)//r è la dimensione della matrice
  5. { for (int j=0; j<r; j++)
  6.  somma += m[j][(i+j) % (r)];
  7. v[i] = somma;
  8. somma = 0;
  9. }}



però non penso sia un metodo esatto perchè a me viene solo il valore della somma di una diagonale e non di tutte quante, ad esempio nella matrice:
123
456
789
a me viene 15 15 15, come potrei correggere?

Ultima modifica effettuata da ciao888 il 22/10/2010 alle 13:05
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
0
Down
V
Segnala al moderatore
Postato alle 17:55
Venerdì, 22/10/2010
Se vuoi trovare la somma dei valori della diagonale secondaria devi usare un solo for:
Codice sorgente - presumibilmente Plain Text

  1. for(int = 0; i < r; i++)
  2.    somma += m[i][r - i - 1]


Ultima modifica effettuata da Il Totem il 22/10/2010 alle 17:57


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM