当前位置:  开发笔记 > 编程语言 > 正文

平均数的计算通向高位.我不明白为什么?

如何解决《平均数的计算通向高位.我不明白为什么?》经验,为你挑选了1个好方法。

我试图得到一个数组的平均数,但输出是高的,因为它是正确的.我究竟做错了什么?

int count(int arr[]){

int sum;

    //Average
    for(int i=0;i<100; i++)
        sum = sum + arr[i];

    printf("Average:%f \n", sum/100);

}
int main()
{
    int array[100]; //RANDOM NUMBERS 0-900

count(array);

 return 0;
}

vsoftco.. 6

sum在使用之前,您需要初始化为零.在具有自动存储持续时间的变量的情况下,C或C++不会自动为您执行此操作.它需要"时间",而在C或C++中,你不需要支付你不需要的东西.否则你得到一个垃圾值(无论它存储在那个内存地址,从技术上来说,除了在赋值中使用未初始化的变量是未定义的行为).

您还需要初始化数组,例如

int arr[100]{}; // C++11 or later

要么

int arr[100] = {0}; // C++98 or good old C

然后用数值填充它.不要将垃圾值视为"随机数",因为您再次遇到未定义的行为,并且程序并不完全安全.



1> vsoftco..:

sum在使用之前,您需要初始化为零.在具有自动存储持续时间的变量的情况下,C或C++不会自动为您执行此操作.它需要"时间",而在C或C++中,你不需要支付你不需要的东西.否则你得到一个垃圾值(无论它存储在那个内存地址,从技术上来说,除了在赋值中使用未初始化的变量是未定义的行为).

您还需要初始化数组,例如

int arr[100]{}; // C++11 or later

要么

int arr[100] = {0}; // C++98 or good old C

然后用数值填充它.不要将垃圾值视为"随机数",因为您再次遇到未定义的行为,并且程序并不完全安全.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有