我正在为一个类(class)做一个项目,我在计算几何平均值的输出时遇到了问题,结果总是 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.0/3.0
的类型为 double
而 1.0f/3.0f
的类型为 float
。
关于c++ - 查找用户输入的几何平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7286819/