【发布时间】:2016-03-14 05:04:39
【问题描述】:
我需要从数组中找出平均值的余数,以便正确向上或向下舍入。基本上,如果数组的平均值有一个大于等于0.5的小数,就需要向上取整,否则需要向下取整。
long arrayaverage;
long average;
long avremain;
long output;
average = ((array1[0]+array1[1]+array1[2]+array1[3]+array1[4])/5);
avremain=average%long(1.0);
if (avremain>=0.5)
{
output=((average-avremain)+1);
}
else if (avremain<0.5)
{
output=(average-avremain);
}
cout<<"The average of the array is: "<<output<<endl;
有我的代码,但我认为问题在于模运算符。每当我尝试运行我的代码时,我都会得到平均值,但它总是四舍五入。任何帮助将不胜感激!
(旁注:在代码的早期部分中,从用户那里收集了 5 个值以形成数组,我知道这没有问题,因为代码的早期部分运行得很好。)
【问题讨论】:
-
您将
avremain保存为long。尝试改用double。 -
你的 avremain 是长变量,它是 int。你不能得到小数部分。使用浮点变量并尝试找出如何获得小数部分。
标签: c++ arrays rounding average