Formula mediei armonice este:
[tex]m_{h} = \frac{n}{\frac{1}{x_{1}}+\frac{1}{x_{2}}+...+\frac{1}{x_{n}}} [/tex]
Așadar, va trebui să împărțim 1 la fiecare număr citit și să punem totul într-o variabilă s, cam așa:
cin>>x;
t = 1/x;
s = s + t;
Apoi vom împărți n la suma pe care o avem în s, exact cum zice formula:
mh = n/s;
Însă toate acestea nu vor fi calculate ok dacă numerele și variabilele nu vor de tip float. (Dacă vor fi de tip int, 1/x, de exemplu, va afișa 0 aproape tot timpul). Deci, în loc de numere așa: 1/x, vom scrie 1.0/x, pentru a face calculul cu numere reale în loc de numere întregi. La fel vom și declara variabilele, cu float x, în loc de int x.
Acum să centralizăm totul:
#include <iostream>
using namespace std;
int main(){
float n, x, t, s, mh;
int i;
s = 0;
cin>>n;
for(i=0;i<n;i++){
cin>>x;
t = 1.0/x;
s = s + t;
}
mh = n / s;
cout<<"mh="<<mh;
}