输入每个学生每门课的分数,计算每个学生的平均分。

这是题目

img


本题需要调用函数
我写的代码

#include <stdio.h>
float a_stu[10000];
float score[10000][10];
int main()
{
    void input_stu(int L,int M);
    void aver_stu(int L,int M);
    int i,j,L,M;
    printf("请输入班级人数:");
    scanf("%d",&L);
    printf("请输入考试科目数量:");
    scanf("%d",&M);
    input_stu(L,M);
    aver_stu(L,M);
    for(i=0;i<L;i++)
    printf("第%d个学生平均分:%.1f\n",i+1,a_stu[i]);
    return 0;
}
void input_stu(int L,int M)
{
    int i,j;
    for(i=0;i<L;i++)
    {
    printf("请输入第%d个学生的成绩:\n",i+1);
    for(j=0;j<M;j++)
    scanf("%d",&score[i][j]);
    }
}
void aver_stu(int L,int M)
{
    int i,j;
    for(i=0;i<L;i++)
    {
    float sum=0; 
    for(j=0;j<M;j++)
    sum+=score[i][j];
    a_stu[i]=sum/L;
    }
}

运行结果为什么这样

img

崩溃了啊
scanf("%d",&M);

#include <stdio.h>
float score[1000][50];
float avg[1000];
int main()
{
    void input_stu(int L,int M);
    void aver_stu(int L,int M);
    int i,j,L,M;
    printf("请输入班级人数:");
    scanf("%d",&L);
    printf("请输入考试科目数量:");
    scanf("%d",&M);
    input_stu(L,M);
    aver_stu(L,M);
    for(i=0;i<L;i++)
    printf("学生平均分:%.1f\n",avg[i]);
    return 0;
}
void input_stu(int L,int M)
{
    int i,j;
    for(i=0;i<L;i++)
    {
    printf("请输入第%d个学生的成绩:\n",i+1);
    for(j=0;j<M;j++)
    scanf("%f",&score[i][j]);
    }
}
void aver_stu(int L,int M)
{
    int i,j;
    float sum=0; 
    for(i=0;i<L;i++)
    {
         sum = 0;
         for(j=0;j<M;j++)
            sum+=score[i][j];
        avg[i]=sum/L;
}
 
 

11行23行,参考第9行,加个&

main函数中未调用函数
改为:

#include <stdio.h>
float score[1000][50];
float avg[1000];
int main()
{
    void input_stu(int L,int M);
    void aver_stu(int L,int M);
    int i,j,L,M;
    printf("请输入班级人数:");
    scanf("%d",&L);
    printf("请输入考试科目数量:");
    scanf("%d",&M);
    input_stu(L,M);
    aver_stu(L,M);
    for(i=0;i<L;i++)
    printf("学生平均分:%.1f\n",avg[i]);
    return 0;
}
void input_stu(int L,int M)
{
    int i,j;
    for(i=0;i<L;i++)
    {
    printf("请输入第%d个学生的成绩:\n",i+1);
    for(j=0;j<M;j++)
    scanf("%f",&score[i][j]);
    }
}
void aver_stu(int L,int M)
{
    int i,j;
    float sum=0; 
    for(i=0;i<L;i++)
    {
         sum = 0;
         for(j=0;j<M;j++)
            sum+=score[i][j];
        avg[i]=sum/L;
    }
}