Informatică, întrebare adresată de dobre50, 8 ani în urmă

Fie un vector cu n elemente. Sa se determine media aritmetica a nr.pozitive si suma nr. negative.

Răspunsuri la întrebare

Răspuns de Apollyon
0

Răspuns:

#include <iostream>

using std::cout, std::cin, std::endl;

static int *creareVector(const size_t &nrElemente)

{

   int *pVector = new int[nrElemente];

   for (size_t i = 0; i < nrElemente; ++i)

   {

       cout << "Introdu numarul (pozitiv/negativ) >> ";

       cin >> pVector[i];

   }

   return pVector;

}

static void calculSumaSiMedie(int *pVector, const size_t &nrElemente)

{

   int sumaNrNeg{};

   double sumaMedie{}, contorNumere{};

   for (size_t i = 0; i < nrElemente; i++)

   {

       if (pVector[i] < 0)

           sumaNrNeg += pVector[i];

       if (pVector[i] >= 0)

       {

           sumaMedie += pVector[i];

           ++contorNumere;

       }

   }

   cout << "Suma numerelor negative este " << sumaNrNeg << " iar media aritmetica a numerelor pozitive este "

        << sumaMedie / contorNumere << endl;

}

int main()

{

   size_t nrElemente;

   cout << "Introdu n (de ex 5) >> ";

   cin >> nrElemente;

   int *pVector = creareVector(nrElemente);

   calculSumaSiMedie(pVector, nrElemente);

   delete[] pVector;

   return 0;

}

Explicație:

Citești numărul de elemente din vector, aloci dinamic un vector de N elemente ( de asta se ocupă funcția creareVector(...) ).

După ce ai alocat și ai adăugat elementele-n vector îl parcurgi.

Dacă elementul curent e mai mic decât 0 ( dacă e negativ ) pracatic îl aduni la o sumă.

Dacă acesta e mai mare sau egal decât 0 ( dacă e pozitiv ) îl adaugi la o sumă ( din nou ) și ți minte câte elemente ai pozitive ( ca să calculezi la final media aritmetică a numerelor ).

La final afișezi suma elementelor negative și media aritmetică a celor pozitive.

De cele menționate mai sus se ocupă funcția calculSumaSiMedie(...).

Alte întrebări interesante