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
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema MedPoz:
#include <iomanip>
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("medpoz.in");
ofstream fout("medpoz.out");
int a[105][105],n;
int main(){
fin >> n;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
fin >> a[i][j];
double S=0;
int k=0;
for(int i=2 ; i<=n ; ++i)
for(int j=1 ; j<i ; ++j)
if(a[i][j]>0)
S += a[i][j], k++;
if(k==0)
fout << "NU EXISTA";
else{
S = S/k;
S = ((int) (S * 1000) )/1000.0;
fout << setprecision(3) << fixed << S;
}
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #234 MedPoz
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #234 MedPoz de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!