C ++中数字的谐波均值程序

给定一个自然数数组,任务是计算给定数字的调和平均值并打印出来。

什么是谐波?

调和均值是指算术平均数的倒数。

$$Harmonic \:均值= \ frac {n} {\ frac {1} {a} + \ frac {1} {b} + \ frac {1} {c} + ...} $$

其中,n是给定元素的总数,而a,b,c,..是数组中的实际元素。

计算谐波平均值的步骤是-

  • 做元素的倒数

  • 将所有往复元素加在一起

  • 现在,将数组中元素的总数除以往复元素的总数

输入值 

arr[] = {2.0, 3.4, 5.3, 2.1}

输出结果 

Harmonic mean is: 2.74163

输入值 

arr[] = {13.5, 14.5, 14.8, 15.2, 16.1}

输出结果 

Harmonic mean is : 14.7707

算法

Start
Step 1→ declare function to 计算谐波平均值 of numbers
   float harmonic_mean(float arr[], int size)
      Declare float sum = 0
      Loop For int i = 0 and i < size and i++
         Set sum = sum + (float)1 / arr[i]
      End
   return (float)size/sum
Step 2→ In main()   Declare float arr[] = {2.0, 3.4, 5.3, 2.1}
   Declare int size = sizeof(arr) / sizeof(arr[0])
   Call harmonic_mean(arr, size)
Stop

示例

#include <bits/stdc++.h>
using namespace std;
//计算谐波平均值
float harmonic_mean(float arr[], int size){
   float sum = 0;
   for (int i = 0; i < size; i++)
      sum = sum + (float)1 / arr[i];
   return (float)size/sum;
}
int main(){
   float arr[] = {2.0, 3.4, 5.3, 2.1};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Harmonic mean is : "<<harmonic_mean(arr, size);
   return 0;
}

输出结果

如果运行上面的代码,它将生成以下输出-

Harmonic mean is : 2.74163