我试图得到一个数组的平均数,但输出是高的,因为它是正确的.我究竟做错了什么?
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
然后用数值填充它.不要将垃圾值视为"随机数",因为您再次遇到未定义的行为,并且程序并不完全安全.
sum
在使用之前,您需要初始化为零.在具有自动存储持续时间的变量的情况下,C或C++不会自动为您执行此操作.它需要"时间",而在C或C++中,你不需要支付你不需要的东西.否则你得到一个垃圾值(无论它存储在那个内存地址,从技术上来说,除了在赋值中使用未初始化的变量是未定义的行为).
您还需要初始化数组,例如
int arr[100]{}; // C++11 or later
要么
int arr[100] = {0}; // C++98 or good old C
然后用数值填充它.不要将垃圾值视为"随机数",因为您再次遇到未定义的行为,并且程序并不完全安全.