👤

Andrei, elev în clasa a VIII-a A a primit de la doamna dirigintă, la finalul clasei a VII-a,
următoarea sarcină: să determine media cea mai mare și media cea mai mică din clasă și
să calculeze media generală a clasei. În clasă sunt n elevi, media fiecăruia este un număr real.
Exemplu: n=5, şirul mediilor contine
valorile 7.30 10 9.80 7.45 8.20 → min=7.30 max=10 media clasei=6.75​


Răspuns :

Răspuns:

#include <iostream>  

using namespace std;

int main()

{  

   unsigned n;

   double med, ma = 0, mMin = 10, mMax = 0;

   cout << "n = "; cin >> n;

   for(int i=1; i<=n; ++i){

       cin >> med;

       if(med < mMin)

           mMin = med;

       if(med > mMax)

           mMax = med;

       ma += med;

   }

   ma = ma / n;

   cout << "min = " << mMin << endl;

   cout << "max = " << mMax << endl;

   cout << "media clasei = " << ma << endl;

   return 0;

}

 

Explicație:

Am declarat n (=numărul elevilor) de tip unsigned (nr. nat.), iar med (=media fiecarui elev), ma (=media aritmetica), mMin (=media cea mai mică) și mMax (=media cea mai are) de tip double (nr. reale). Pe ma l-am inițializat cu 0, pe mMin cu 10 (cea mai mare notă posibilă pt. a putea face comparația) și pe mMax cu 0 (cea mai mică notă posibilă pt. a putea face comparația). Se citește n de la tastatură, iar după se citesc n medii cu variabila med. De fiecare dată se compară med cu mMin și mMax, iar la final se adună med la ma. După terminarea for-ului, ma ia valoarea lui ma (suma mediilor) / n (nr. elevilor) și se află media generală (P.S. în exemplu este calculată greșit - 6.75 în loc de 8.55). La final se afișează tot.