这里怎么调用函数啊,两个函数内都要定义同一个变量吗?

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include"stdio.h"
double fun_ave(double *p,int n);
int main()
{
    float a[10];
    float *p;
    int n;
    for(n=0;n<10;n++)
    {
        scanf("%f",&a[n]);
    }
        p=&a[0];
    fun_ave(double *p,int n);
    printf("%.2f",ave);
}
double fun_ave(double *p,int n)
{
    float ave;

    for(n=0;n<10,n++,p++)
    {
        ave=*p+ave;
    }
    ave=ave/10;
    return ave;
}



#include "stdio.h"
double fun_ave(double *p, int n);
int main()
{
    double a[10];
    double *p;
    int n;
    for (n = 0; n < 10; n++)
    {
        scanf("%lf", &a[n]);
    }
    p = a;
    printf("%.2lf", fun_ave(p, 10));
}
double fun_ave(double *p, int n)
{
    double ave = 0;
    for (n = 0; n < 10; n++, p++)
    {
        ave = *p + ave;
    }
    ave = ave / 10.0;
    return ave;
}


#include"stdio.h"
double fun_ave(double* p, int n);
int main()
{
    double a[10];
    double* p; //1、p可以更换其它名字,不需要与函数中的参数名完全一致
    int n;
    for (n = 0; n < 10; n++)
    {
        scanf("%f", &a[n]);
    }
    p = &a[0];
    double ave = fun_ave(p, n);   //2、此处的p需要与注释1处的名字一致
    printf("%.2f", ave);
}
double fun_ave(double* p, int n)
{
    float ave;
    for (n = 0; n < 10, n++, p++)
    {
        ave = *p + ave;
    }
    ave = ave / 10;
    return ave;
}