Se dă matricea A(m,n) cu elemente numere întregi. Să se calculeze:
a) suma elementelor de pe diagonala principală;
b) produsul elementelor de pe diagonala secundară.
pascal
Răspunsuri la întrebare
#include <iostream>
using namespace std;
//Alocare dinamica matrice
int** alocare_matrice(int nLinii, int nColoane) {
int** p = new int* [nLinii];
for (int index = 0; index < nLinii; index++)
p[index] = new int[nColoane];
return p;
}
//Citire date dinamic
int** citire_date(int& nLinii, int& nColoane) {
cout << "Numarul de linii : ", cin >> nLinii;
cout << "Numarul de coloane : ", cin >> nColoane;
int** matrice = alocare_matrice(nLinii, nColoane);
cout << "Introduceti elementele matricei :\n";
for (int linie = 0; linie < nLinii; linie++) {
for (int coloana = 0; coloana < nColoane; coloana++) {
cin >> matrice[linie][coloana];
}
}
return matrice;
}
//Calculare suma diagonala principala
int suma_diag_princ(int** mat, int dim) {
int suma = 0;
for (int index = 0; index < dim; index++) suma+= mat[index][index];
return suma;
}
//Calculare produs diagonale secundare
int prod_diag_sec(int** mat, int dim) {
int prod = 1;
for (int index = 0; index < dim; index++)
prod *= mat[index][dim - 1 - index];
return prod;
}
int main()
{
int n, m, i, j;
//Citire date
int** matrice = citire_date(n, m);
//Daca matricea e patratica afiseaza eroare
if (n == m) {
cout << "\nSuma de pe diagonala principala : " << suma_diag_princ(matrice, n);
cout << "\nProdus de pe diagonala secundara : " << prod_diag_sec(matrice, n);
}
else {
cout << "Eroare, matricea nu e patratica";
exit(1);
}
}