Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从数组中查找平均值_C++_Arrays_Average - Fatal编程技术网

C++ 从数组中查找平均值

C++ 从数组中查找平均值,c++,arrays,average,C++,Arrays,Average,出于某种原因,我得到了一个非常奇怪的负数值作为我的程序的平均值,下面是我的代码: 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 int和,平均值; 整数大小; size=sizeof(数组)/sizeof(数组[0]); 总和=

出于某种原因,我得到了一个非常奇怪的负数值作为我的程序的平均值,下面是我的代码:

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
int和,平均值;
整数大小;
size=sizeof(数组)/sizeof(数组[0]);
总和=0;
平均值=0;
对于(int i=0;i

我的输出是:-6.84941e+061

std::acculate
,除法将完成此操作,而无需编写自己的循环。向我们展示如何声明数组及其内容。或者更好,在
main
函数中显示一个可编译的示例,该示例演示您获得的输出。告诉我们数据的性质。它们是大数字、小数字、大量小/大数字等吗?在您的系统上,
int
的大小是多少?除法前部分和是否超过INT_MAX?你考虑过调试这个吗?你的代码显示avg是int型的。那怎么打印一个浮点值呢?谢谢,刚才注意到了,但这并没有解决它…double呢?因为这就是我正在使用的。@user12074577看到我更新的帖子了吗?@user12074577 double也可以。但您仍然需要注意整数截断是和还是整数。仅声明平均双精度不适用enough@user12074577更新你的帖子,告诉我们你在哪里做的代码。
for(int i = 1; i < size; i++){
       //^^should be 0
   sum += array[i];
}
avg = sum / size; //pay attention to truncation when doing integer division
 //the average may not necessarily be integer
 float avg = 0.0;  //or double for higher precision
 for (int i = 0; i < size; ++i)
 {
     sum += array[i];
 }
 avg = ((float)sum)/size; //or cast sum to double before division