C++
Se citeşte de la tastatură numărul n,urmat de n valori raționale, reprezentand veniturile pentru n săptămâni consecutive.
Date de ieşire
Programul va afişa pe ecran venitul mediu al fiecărei luni. Pentru simplitate, considerăm că fiecare lună e formată din exact 4
saptamani consecutive.
Valorile afişate vor fi separate prin spații.
Restrictii şi precizari
0
•0<=venitul din fiecare saptamana<=100
• n este un numar natural divizibil cu 4
• in problema vom considera că fiecare lună are exact 4 săptămâni
•prima valoare din şirul de venituri săptămânale va corespunde întotdeauna primei săptămâni din lună.
• Veniturile săptámánale sunt numere raționale cu cel mult 3 zecimale.
• rezultatul se va afisa cu exact 3 zecimale după virgulă. Pentru a afişa exact 3 zecimale poţi folosi funcţia setprecision.
Exemplu
Date de intrare
8
147.16 258.87 875.19 787.13 421.99 147 257 665.6
Date de iesire 517.087 372.898
Răspunsuri la întrebare
Răspuns:
#include <iomanip>
#include <iostream>
using std::cout, std::cin, std::endl, std::setprecision;
int main() {
int n, j{};
double venitulCurent, sumaVeniturilor{}, *veniturileMedii;
// citim N-ul
cout << "Introdu N >> ";
cin >> n;
// Dacă N nu este divizibil cu 4 ieșim din program
if (n % 4 != 0) exit(EXIT_FAILURE);
// Creăm un vector de N / 4 elemente pentru a salva veniturile medii
veniturileMedii = new double[static_cast<size_t>(n) / 4];
// Citim N venituri
for (int i = 1; i <= n; i++) {
cout << "Introdu venitul >> ";
cin >> venitulCurent;
// Venitul citit îl adăugăm la o sumă
sumaVeniturilor += venitulCurent;
// Când am introdus 4 venituri
if (i % 4 == 0) {
// Venitul mediu îl adăugăm în vector
veniturileMedii[j++] = sumaVeniturilor / 4;
// și resetăm suma
sumaVeniturilor = 0;
}
}
// Setăm precizia la 6 pentru a afișa strict cu 3 decimale
cout << setprecision(6);
// Afișăm veniturile medii
for (int i = 0; i < (n / 4); ++i) cout << veniturileMedii[i] << " ";
cout << endl;
// Și la final eliberăm memoria alocată
delete[] veniturileMedii;
return 0;
}