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