Răspuns:
#include <iostream>
using namespace std;
int main()
{
int n, i, poz=0, nu0=0, num;
float s_arm=0, ma_poz, m_arm, ma_nu0, s_poz=0, s_nu0=0;
cin >> n;
for (int i=1; i<=n; i++) {
cin >> num;
if (num>0) {
++poz; s_poz+=num;
s_arm+=1.0/num;
}
if (num!=0) {
++nu0; s_nu0+=num;
}
}
ma_poz=s_poz/poz;
m_arm=1.0*poz/s_arm;
ma_nu0=s_nu0/nu0;
cout << "1. " << ma_poz << endl;
cout << "2. " << m_arm << endl;
cout << "3. " << ma_nu0;
return 0;
}
Explicație:
media armonică se calculează numai pentru numere pozitive...
Așa-i sau nu ???
Succese!