寻找用户输入的几何平均值
Finding Geometric Mean of user input
我正在为一个班级做一个项目,我在几何平均值的输出上遇到了麻烦,它总是显示为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的整除法,因为余数被定义为被截断。您需要将其中一个或两个转换为浮点值。
相关文章:
- 计算数组c++的平均值
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- Python中的for循环与C++有何不同
- 计算平均值,不包括上次得分
- 彩色图像的卤化物处理平均值
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 按平均值替换数组中的元素
- 如何返回多个矢量对象的平均值?C++
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- 将随机生成的数字添加到数组 + 对这些数组求平均值
- 在C++中释放内存期间,迭代器与指针有何不同
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 制作具有平均值的随机数生成器
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- 如何使用对象制作分数列表并获得平均值
- 是否可以通过每次在内存中仅保存一个平铺来处理完整的平铺 tiff 图像?
- CUDA 使用共享内存平铺 3D 卷积实现
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 如何在类中同时运行某些内容(在单线程平台中)?