寻找用户输入的几何平均值

Finding Geometric Mean of user input

本文关键字:何平 平均值 用户 输入 寻找      更新时间:2023-10-16

我正在为一个班级做一个项目,我在几何平均值的输出上遇到了麻烦,它总是显示为1,我确信这是不对的。

下面是我的代码:

#include<iostream>
#include<math.h>
using namespace std;
int main(int argc, char**argv) 
{
float i, j, k;
float a, h, g;
cout<<"Enter 3 floating point numbers"<<endl;
cin>>i>>j>>k;
while(i>0 && j>0 && k>0 )
{
    a = (i+j+k)/3;
    h = 3/((1/i) + (1/j) + (1/k));

    g = pow((i*j*k),(1/3));
    cout<<"Arithmetic: "<<a<<endl;
    cout<<"Harmonic: "<<h<<endl;
    cout<<"Geometric: "<<g<<endl;
    cout<<"Enter 3 floating point numbers"<<endl;
    cin>>i>>j>>k;
}

return(0);
}

1/3为零,因为它是整除法。如果两个操作数都是整型,则总是整除法。然后将某数的幂取零得到1。

您需要使用浮点字面值:1.0/3.0的类型为double, 1.0f/3.0f的类型为float

1/3是一个与0相等的整数。您应该编写1.0/3.0(或1./3)来获取浮点值。

(1/3)

这是一个总是产生0的整除法,因为余数被定义为被截断。您需要将其中一个或两个转换为浮点值。