Rezolvare completă PbInfo #234 MedPoz

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 Adresa de email.

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!