C语言,调用函数时出错,求解

求解负数大小时,输出了最小的数字。

int MAX(int num[],int len){
int max = 0;
int i;
for (i = 0; i < len; i++){
if (max < num[i]){
max = num[i];
}
}
return max;
}
int main (){
int num[4];
int i;
int len = sizeof(num)/4;
for (i = 0;i < len; i++){
scanf ("%d",num[i]);
getchar ();
}
printf ("%d", MAX (num , len));
}

int MAX(int num[],int len){
int max = num[0];
int i;
for (i = 0; i < len; i++){
if (max < num[i]){
max = num[i];
}
}
return max;
}
int main (){
int num[4];
int i;
int len = sizeof(num)/4;
for (i = 0;i < len; i++){
scanf ("%d",&num[i]);
getchar ();
}
printf ("%d", MAX (num , len));
}

修改了两个地方
1.在MAX函数对max赋初值时应该令其等于num[0]
2.scanf函数应该是&num[i]
下面是运行结果

img

max不应该赋值为0