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
ASTA este varianta mea de a o face dar ceva e in neregula, si nu imi dau seama ce:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
ifstream a("medpoz.in");
ofstream b(" medpoz.out");
int i, j, x[101][101], s=0, n, m, k=0;
float ma;
a>>n>>m;
for(i=1; i<=n; ++i)
for(j=1; j<=m; ++j)
{ a>>x[i][j];
if(i>j && x[i][j]>0)
{
s=s+x[i][j];
k++;
}
}
if(s==0) b<<"NU EXISTA";
ma=s/k;
b<<fixed<<setprecision(3)<<ma;
a.close();
b.close();
return 0;
}
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
ASTA este varianta mea de a o face dar ceva e in neregula, si nu imi dau seama ce:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
ifstream a("medpoz.in");
ofstream b(" medpoz.out");
int i, j, x[101][101], s=0, n, m, k=0;
float ma;
a>>n>>m;
for(i=1; i<=n; ++i)
for(j=1; j<=m; ++j)
{ a>>x[i][j];
if(i>j && x[i][j]>0)
{
s=s+x[i][j];
k++;
}
}
if(s==0) b<<"NU EXISTA";
ma=s/k;
b<<fixed<<setprecision(3)<<ma;
a.close();
b.close();
return 0;
}