首先,这是家庭作业,因此我无法为任何大小的数组动态分配内存,而且我无法使用 vector
。
我有一个类,其中包含一个包含30个元素的double
数组,以及另外两个变量,用于跟踪已添加的元素数量以及可存储的最大元素数。
有几种方法可以从数组中的元素返回最高,最低,平均和总数。其中一种方法的一个例子是......
double Stats::sum() const
{
double sum = 0.0;
for (unsigned short i = 0; i < nElements; ++i)
sum += stats[i];
return sum;
};
在我的main()
函数中,我有一个cout
语句......
cout << "\nTotal rainfall for " << MonthlyRainfall.size() << " months is "
<< MonthlyRainfall.sum() << " inches.\n";
当数组中有值时,输出就是我期望的......
Total rainfall for 1 months is 1.5 inches.
但是,当数组中没有值时(方法返回0.0),但输出看起来像......
Total rainfall for 0 months is -1.$ inches.
任何人都可以帮助我理解cout
语句中发生的事情是什么导致我的方法返回的0.0按原样输出?
注意:在main()函数的开头,执行以下语句以格式化十进制输出。 cout << fixed << showpoint << setprecision(1);
的更新 的 我想它已经很晚了,我正在调用average()方法而不是sum()。我已修复它,你还指出我需要对平均方法进行一些更改,以确保不会发生除以0。 (=
答案 0 :(得分:3)
答案 1 :(得分:2)
average()
已将某事物除以零并得到负无穷大,这就是cout
显示它的方式。
答案 2 :(得分:-1)
你没有显示平均方法,但我的猜测是你在那里做零除。随之而来的是古怪。