Enunț
Fiind dată o matrice a cu m linii și n coloane cu elemente numere întregi, scrieți un program care:1. Determină media aritmetică a elementelor matricii;
2. Afișează numărul elementelor pozitive, numărul elementelor negative și numărul elementelor nule din matrice;
3. Tipărește elementele pare aflate pe linii impare și coloane divizibile cu 3.
Rezolvare
#include <fstream>using namespace std;
const int maxn = 101;
const int maxm = 101;
int main()
{
int N, M, A[maxm][maxn];
int nrElPoz = 0, nrElNeg = 0,
nrElNule = 0, contor = 0,
ma = 0;
ifstream in("fisier.in");
in >> N >> M;
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= M; ++j)
{
in >> A[i][j];
// adunarea numerelor pt. calculul
// mediei aritmetice:
ma += A[i][j];
// cele 4 contoare:
if (A[i][j] == 0)
{
++nrElNule;
}
else if (A[i][j] > 0)
{
++nrElPoz;
}
else // if (A[i][j] < 0)
{
++nrElNeg;
}
if (A[i][j] % 2 == 0 && (i + 1) % 2 != 0 &&
(j + 1) % 3 == 0)
{
++contor;
}
}
}
ma /= N * M;
in.close();
ofstream out("fisier.out");
out << "Media aritmetica: " << ma << endl;
out << "Nr. elemente pozitive: " << nrElPoz << endl;
out << "Nr. elemente nule: " << nrElNule << endl;
out << "Nr. elemente negative: " << nrElNeg << endl;
out << "Nr. elemente pare pe linii impare si coloane div. cu 3: " <<
contor << endl;
out.close();
return 0;
}
Schemă
Notă: în unele locuri s-a referit la A[i][j] prin sintaxa A(i, j).
Explicații
Rezolvarea aceasta citește și scrie în fișier, nu pe ecran. Fișier de intrare: fisier.in, fișier de ieșire: fisier.out.Cu excepția împărțirii sumei pentru aflarea mediei aritmetice, toate calculele se fac pe măsură ce se citește din fișierul de intrare.
Niciun comentariu:
Trimiteți un comentariu