C语言 利用函数指针寻找数组中的最值下标问题

问题遇到的现象和发生背景

计算并输出数组的最大值下标,最小值下标,平均值,并返回数组的平均值

问题相关代码,请勿粘贴截图
#include<stdio.h>
double fun(int *arr, int n, int *pMax, int *pMin )
{
   /*********Begin*********/
       int i,sum=0.0,mean;
    arr[*pMax]=arr[0];
    arr[*pMin]=arr[0];
    for(i=1;i<n;i++)
    {
        if(arr[i]>arr[*pMax])
        *pMax=i;
        if(arr[i]<arr[*pMin])
        *pMin=i;
        sum+=arr[i];
    }
    mean=(double)sum/n;
    return mean;

    /*********End**********/
}
int main()
{
   int a[100] ;
   int i, n, max, min; /* 最大值下标,最小值下标*/
   double mean;
   scanf("%d", &n);
   for(i = 0; i < n; i++)
   {
       scanf("%d", &a[i]);
   }
       
    /*********Begin*********/
     /*调用函数并输出最大值下标,最小值下标,平均值*/
     fun(a,n,&max,&min);
    printf("最大值下标: %d\n最小值下标: %.1f\n平均值: %d",max,min,mean);
    /*********End**********/
   return 0;
}

运行结果及报错内容

无运行结果

我的解答思路和尝试过的方法
我想要达到的结果
#include <stdio.h>
#include <limits.h>

double fun(int *arr, int n, int *pMax, int *pMin)
{
    /*********Begin*********/
    int max = INT_MIN;
    int min = INT_MAX;
    double sum = 0.0;
    for (int i = 0; i < n; i++)
    {
        if (arr[i] > max) {
            max = arr[i];
            *pMax = i;
        }
        if (arr[i] < min) {
            min = arr[i];
            *pMin = i;
        }
        sum += arr[i];
    }
    return sum / n;
    /*********End**********/
}

int main()
{
    int a[100];
    int i, n, max, min; /* 最大值下标,最小值下标*/
    double mean;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    /*********Begin*********/
    /*调用函数并输出最大值下标,最小值下标,平均值*/
    mean = fun(a, n, &max, &min);
    printf("最大值下标: %d\n最小值下标: %d\n平均值: %.1lf\n", max, min, mean);
    /*********End**********/
    return 0;
}

#include <stdio.h>
double fun(int *arr, int n, int *pMax, int *pMin)
{
    /*********Begin*********/
    int i, sum = arr[0], mean;
    int max = arr[0];
    int min = arr[0];
    for (i = 1; i < n; i++)
    {
        if (arr[i] > max)
        {
            max = arr[i];
            *pMax = i;
        }
        if (arr[i] < min)
        {
            min = arr[i];
            *pMin = i;
        }
        sum += arr[i];
    }
    mean = (double)sum / n;
    return mean;
    /*********End**********/
}
int main()
{
    int a[100];
    int i, n, max, min; /* 最大值下标,最小值下标*/
    double mean;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    /*********Begin*********/
    /*调用函数并输出最大值下标,最小值下标,平均值*/
    mean = fun(a, n, &max, &min);
    printf("最大值下标: %d\n最小值下标: %d\n平均值: %.1lf", max, min, mean);
    /*********End**********/
    return 0;
}