Salve dovrei scrivere un programma che somma gli elementi delle diagonali parallele alla diagonale secondaria di una matrice per poi trovare la diagonale con gli elementi maggiori.
Per esempio
1 2 3
5 7 9
0 2 3
In questo caso la diagonale maggiore sarebbe la penultima con 9+2=11
Non ho problemi con l'inserimento e la stampa della matrice. Nè con la somma degli elementi. Ma non riesco a capire come passare alle diagonali successive.
Vi posto il codice che ho scritto fino adesso.
#include<iostream>
#include<iomanip>
#include<stdlib.h>
using namespace std;
const int num = 4;
int main()
{
int somma;
int matrice[num][num];
int i, j;
cout << "Inserisci valori della matrice: " << endl;
for (i = 0; i < num; i++)
{
for (j = 0; j < num; j++)
{
cout << "Inserisci valore: " << "[" << i << "]" << "[" << j << "]" << " ";
cin >> matrice[i][j];
}
}
cout << endl << endl;
for (i = 0; i < num; i++)
{
for (j = 0; j < num; j++)
{
cout << setw(4) << matrice[i][j];
}
cout << endl;
}
somma = 0;
// come posso incorporare il codice successivo in modo che sommi tutte le diagonali?
while (i >= 0 && j < num) // ciclo while per sommare i valori di una diagonale
{
somma = somma + matrice[i][j];
i--;
j++;
}
return 0;
}