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

Citind de la tastatura n numere naturale, sa se calculeze media armonica a lor. Programul sa fie in c++ si fara vectori.As dorii si o explicare la cod destul de amanuntita ca nu vreau doar sa copiez codul vreau si sa l inteleg .Multumesc frumos ! 100 de puncte

Răspunsuri la întrebare

Răspuns de Xdddd2
0

#include<iostream>

using namespace std;

int main()

{int n,i,x;

float s=0,mh;

cin>>n;

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

{cin>>x;

s=s+(float)1/x;

}

mh=n/s;

cout<<"Media armonica este "<<mh;

return 0;

}

Explicație:

Matematic, media armonică a n numere este:

 \frac{n}{ \frac{1}{x1}  +  \frac{1}{x2}  + ... +  \frac{1}{xn} }

Algoritm pe care l am făcut citește, pe rând, cele n numere și adaugă inversul lui în sumă pentru a afla numitorul fracției. Variabila "mh" reprezintă media armonică, n e numărul de numere, respectiv numărătorul fracției, iar s e suma inverselor, respectiv numitorul fracției.

Dacă ai alte neclarități lasă în comentariu și-ți explic


greeneyes27: De ce am citit un n si dupa un x nu mergea sa citim odata n inafara buclei si odata in while
Xdddd2: n e numărul de numere, iar pe x l am folosit pentru a citi fiecare din cele n numere, variabila nu putea fi aceeași pentru că am fi pierdut numărul de numere
Alte întrebări interesante