显示[Error] ld returned 1 exit status

为啥会显示[Error] ld returned 1 exit status

#include
int m,n,L,M;
float score[60][9],stu[60],cla[9],high[9],low[9];//各科分数,学生平均分 ,课程平均分 ,最高分,最低分 
int main()
{
    void ave_stu(void);//计算学生平均成绩 
    void ave_cla(void);//计算课程平均成绩 
    float highest();//计算最高成绩 
    float lowest();//计算最低成绩 
    printf("请输入班级总人数和课程总数:");
    scanf("%d,%d",&L,&M); 
    for(int i=0;ifor(int j=0;jprintf("请输入学生%d的成绩:",i+1);
                scanf("%f",&score[i][j]);
            }
        }
    ave_stu();
    ave_cla();
    lowest();
    highest();
    for(int i=0;iprintf("学生%d的平均分为:%f\n",i+1,stu[i]);
        }
    for(int i=0;iprintf("课程%d的平均分为:%f\n",i,cla[i]);
        }
    for(int i=0;iprintf("课程%d的最高分为:%f\n",i,high[i]);
        }
    for(int i=0;iprintf("课程%d的最低分为:%f\n",i,low[i]);
        }
}
void ave_stu(void)//计算学生平均分 
{
    int i,j;
    float s;
    for(i=0;ifor(j=0,s=0;jvoid ave_cla(void)//计算课程平均分 
{
    int i,j;
    float s;
    for(j=0;j0;
        for(i=0;ifloat higest()//计算最高分 
{    int i,j,h;
    float higest,high[9];
    h=score[i][j];
    for(j=0;j0;
        for(i=0;iif(score[i][j]>h)
            h=score[i][j];
        }
        high[j]=h;
    }
return(h);
}
float lowest()//计算低分 
{    int i,j,l;
    float lowest,low[9];
    l=score[i][j];
    for(j=0;j0;
        for(i=0;iif(score[i][j]return(l);
}

函数ave_cla从ave_stu里取出来单独放。

编译时前一个程序没关