c语言,结果试了很久不对,求帮看看哪里出了问题

从键盘上输入10个学生某一门课程的成绩,通过程序打印出该门课的平均成绩及其最高、最低分。
要求:(1)用单独的子函数计算平均分;
(2)用单独的子函数计算最高、最低分;
(3)在主函数中输入学生成绩,并将成绩作为函数参数调用(1)和(2)的子函数进行计算,然后在主函数中输出计算结果。
#include<stdio.h>
void main()
{

int i,a[10],max=0,min=0;
float ave;
 for (i = 0; i < 10; i++)
    scanf("%f", &a[i]);
pjs(a);
printf("%f",ave);
zgzd(a);
printf("%d%d",max,min);

}
void pjs(int a[10])
{
int sum=0,i;
float ave=0;
for(i=0;i<10;i++)
sum += a[i];
ave = 1.0*sum / 10;
return ave;
}
void zgzd(int a[10])
{
int max=0, min=100,i;
for (max = a[0], i = 1; i<10; i++)
{
if (a[i] > max)
{
max = a[i];
}
}

for (min = a[0], i = 1; i<10; i++)
{
    if (a[i]< min)
    {
        min = a[i];
    }
}

}

把第一个scanf语句的%f 改为%d
你这是定义的整型数组

把输出函数写到子函数里面,你主函数里面的avg、min、max和你子函数里面的avg、min、max根本就不是一回事,子函数里面的局部变量在函数结束后就释放了