C++ 求用户输入的几何平均值

C++ 求用户输入的几何平均值,c++,mean,C++,Mean,我正在为一个班级做一个项目,我对几何平均数的输出有困难,它总是为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&

我正在为一个班级做一个项目,我对几何平均数的输出有困难,它总是为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);
}
#包括
#包括
使用名称空间std;
int main(int argc,字符**argv)
{
浮点数i,j,k;
浮子a,h,g;
coutj>>k;
而(i>0&&j>0&&k>0)
{
a=(i+j+k)/3;
h=3/((1/i)+(1/j)+(1/k));
g=功率((i*j*k),(1/3));

cout
1/3
是零,因为它是整数除法。如果两个操作数都是整数类型,则始终是整数除法。然后将某物的幂运算为零,得到一

您需要使用浮点文本:
1.0/3.0
的类型为
double
1.0f/3.0f
的类型为
float

(1/3)

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

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

您应该使用调试器尝试找出计算失败的部分。谷歌:“c++几何平均值”C.语言可以提供方便的浮点文字!我会拆分不同的代码,写代码< 1 / 3 < /COD>。那是因为你是一个数字。-我想<代码> <代码>提供了<代码> STD::比率< />代码,也许有一种C++方式来获得分数的通用方式……“会”。?在什么条件下?@Kerrek:在他写的条件下:)