# PBinfo #234 – medpoz – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Se consideră un tablou bidimensional cu n linii şi n coloane ce conţine numere intregi din intervalul [-100,100]. 

Cerinţa
Să se determine media aritmetică a elementelor strict pozitive din matrice, care sunt situate sub diagonala principală.

Date de intrare
Fişierul de intrare medpoz.in conţine pe prima linie numărul n, iar pe următoarele n linii câte n numere naturale separate prin spaţii, reprezentând elementele tabloului.

Date de ieşire
Fişierul de ieşire medpoz.out va conţine pe prima linie un singur număr, reprezentând valoarea cerută.

Restricţii şi precizări

2 ≤ n ≤ 20;
dacă în matrice nu există elemente strict pozitive, situate sub diagonala principală, se va afișa mesajul NU EXISTA;
media se va afişa cu exact trei zecimale, fără rotunjire;

Exemplu:
medpoz.in

4
-1 2 4 5
0 6 3 1
2 4 2 0
3 -5 1 -3
medpoz.out

2.500
Explicaţie 
Valorile strict pozitive situate sub diagonala principală sunt 2, 4, 3 şi 1, iar media lor aritmetică este 2.5. Se va afişa cu trei zecimale, adică 2.500

## Cod sursă C++

```cpp
#include <iomanip>
#include <fstream>
using namespace std;
ifstream in("medpoz.in");
ofstream out("medpoz.out");
int mat[101][101], n;
int main() {
    in >> n;
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= n; ++j)
            in >> mat[i][j];
    double S = 0;
    int k = 0;
    for (int i = 2; i <= n; ++i)
        for (int j = 1; j < i; ++j)
        	if (mat[i][j] > 0) {
        		S = S + mat[i][j];
        		k++;
    		}
    if (k == 0) out << "NU EXISTA";
    else {
        S = S / k;
        S = ((int) (S * 1000)) / 1000.0;
        out << setprecision(3) << fixed << S;
    } return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/234)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/234/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-234/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
