c语言基础指针和数组问题

#include<stdio.h>
int fun(int a[],int n,int *max)
{
    int average=0;
    int sum,i;
    for(i=0;i<=n;i++)
    {
        if(a[i]<*max)
            *max=a[i];
        sum+=a[i];
    }
    average=sum/(n+1);
    return average;
}
void main()
{
    int a[80],n=9,c,i;
    printf("请输入十个数值");
    for(i=0;i<=9;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("最大值为%d,平均值为%d",c,fun(a[80],n,&c));
}

结果出现乱码是为什么啊

img


还有就是编码的时候有个情况

img

函数里sum和*max都没有赋予初始值

#include<stdio.h>
int fun(int a[],int n,int *max)
{
    int average=0;
    int sum=0,i;
    for(i=0;i<n;i++)
    {
        if(i==0 || *max < a[i])
            *max = a[i];
        sum+=a[i];
    }
    average=sum/n;
    return average;
}
void main()
{
    int a[80],avg=0,i,max;
    printf("请输入十个数值");
    for(i=0;i<=9;i++)
    {
        scanf("%d",&a[i]);
    }
    avg = fun(a,10,&max);
    printf("最大值为%d,平均值为%d",max,avg);
    return 0;
}