【发布时间】:2013-04-16 02:00:50
【问题描述】:
由于某种原因,我的程序平均得到一个非常奇怪的负数,这是我的代码:
int sum, avg;
int size;
size = sizeof(array) / sizeof(array[0]);
sum = 0;
avg = 0;
for(int i = 0; i < size; i++){
sum += array[i];
}
avg = sum / size
我的输出是:-6.84941e+061
【问题讨论】:
-
std::accumulate和一个部门会这样做,而无需编写自己的循环。 -
向我们展示您如何声明您的数组及其内容。
-
或者更好的是,在
main函数中显示一个可编译的示例,演示您获得的输出。 -
告诉我们数据的本质是什么。它们是大数、小数、大量小/大数等吗?您系统上
int的大小是多少?在除法之前,部分总和是否超过 INT_MAX?您是否考虑过调试这个? -
您的代码显示 avg 是 int 类型。那如何打印浮点值?