Cerința
Se dă o matrice pătratică cu n
linii și n
coloane, numerotate de la 1
la n
și elemente numere naturale. Să se determine suma elementelor aflate strict deasupra diagonalei secundare a matricei.
Se va defini și folosi subprogramul sub
, cu 3
parametri:
n
– dimensiunea matriceix
– matriceak
– un număr natural,1 < k ≤ 2*n
care va returna suma tuturor elementelor a
ij
din matrice pentru care i + j = k
.
Date de intrare
Fișierul de intrare matrice5.in
conține pe prima linie numărul n
, iar următoarele n
linii câte n
numere naturale, reprezentând elementele matricei.
Date de ieșire
Fișierul de ieșire matrice5.out
va conține pe prima linie suma determinată.
Restricții și precizări
1 ≤ n ≤ 100
- elementele matricei sunt numere naturale mai mici decât
1000
- liniile matricei sunt numerotate de la
1
lan
.
Exemplu
matrice5.in
4 1 6 3 1 6 1 3 1 1 3 1 6 3 1 6 1
matrice5.out
18
#include <bits/stdc++.h> using namespace std; ifstream cin("matrice5.in"); ofstream cout("matrice5.out"); int sub(int n, int a[][101], int k){ int sum = 0; for(int i = 1; i <= n; ++i) for(int j = 1; j <= n; ++j) if(i + j == k) sum += a[i][j]; return sum; } /* a[1][1], a[1][2], a[1][3] a[2][1], a[2][2], a[2][3] a[3][1], a[3][2], a[3][3] */ int main(){ int n, a[101][101]; cin >> n; for(int i = 1; i <= n; ++i) for(int j = 1; j <= n; ++j) cin >> a[i][j]; int sum = 0; for(int i = 2; i <= n; ++i) sum += sub(n, a, i); cout << sum; return 0; }