数据并没有储存到数组中,如何解决?

img

表头语文数学英语
学生10(i/j)1(j)2(j)3 (j)4(该学生总成绩)5(该学生平均)
学生21(i)
学生32 (i)
-3(i)
-n(学科总成绩)//
-n+1(学科平均)//

我的代码:

#include
int main()
{
    double a[100][5];int  n;
    printf("输入学生总数:");
    scanf_s("%d", &n);
    printf("请输入语数外成绩:\n");
    for (int i = 0; i < n; i++)
    {
        printf("---第%d个的成绩---\n", i + 1);
        for (int j = 0; j < 3; j++)
        {
            scanf_s("%lf", &a[i][j]);//将三科的成绩储存在数组a[i][j]中;
        }
    }
    printf("学科总分和平均分为:");
    for (int j = 0; j < 3; j++)
    {
        for (int i= 0; i < n; i++)
        {
            a[n][j] = a[n][j]+ a[i][j];//将学科总分储存在数组a[n][j]中;
            a[n + 1][j] = (a[n ][j])/ n;//将学科平均分储存在数组a[n+1][j]中;
        }
        printf("%lf,%lf\n", a[n][j], a[n + 1][j]);
    }
    printf("该学生的总分和平均分为:");
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            a[i][3] += a[i][j];//将学生总分储存在数组a[i][3]中;
            a[i][4] = (a[i][3]) / 3;//将学生平均分储存在a[1][4]中;
        }
        printf("%lf,%lf\n", a[i][3], a[i][4]);
        if (a[i][3] < a[i + 1][3])//从大到小输出学生的总成绩;
        {
            int temp = a[i + 1][3];
            a[i + 1][3] = a[i][3];
            a[i][3] = temp;
        }
        printf("%lf", a[i][3]);
    }
    

}

出现的问题:第21行执行完后,总成绩并没有储存到数组中,后面也有相同的问题

img

数组a没有初始化
a[n][j] 里存了个随机数啊
a[n][j] = a[n][j]+ a[i][j];
a[n][j]一开始不是0,你直接做加法,加完肯定是乱码呀