Problemă rezolvată matrice clasa a XI-a mate-info neintensiv

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