Informatică, întrebare adresată de sfinx, 9 ani în urmă

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

Răspuns de andrei750238
0

#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);

}

}

Anexe:
Alte întrebări interesante