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