401
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
#include <bits/stdc++.h>
using namespace std;
ifstream fin("medpoz.in");
ofstream fout("medpoz.out");
int main()
{
long long n , a[201][201], cnt = 0 , v[205] , ok = 0 , s = 0;
fin >> n;
for(int i = 0 ; i < n ; i++)
for(int j = 0 ; j < n ; j++)
fin >> a[i][j];
for(int i = 0 ; i < n ; i++)
for(int j = 0 ; j < n ; j++)
{
if(i > j && a[i][j] > 0)
{
s += a[i][j];
cnt++;
ok = 1;
}
}
if(ok!=0)
{
double x = trunc((double)s/cnt*1000)/1000.0;
fout << fixed << setprecision(3) << x;
}
else
fout << "NU EXISTA";
fin.close();
fout.close();
return 0;
}
Comentarii