C语言二维数组的应用,出现了点小问题,请大家帮忙看看

要求分别输入三位学生的四门科目的成绩,并分别输出每门科目的平均分
以下是我的代码:
#include
#include

int main()
{
int a[3][4]= {0};
int i,j,t[4]= {0};

printf("高等数学成绩分别为:");
for(i=0; i<3; i++)
{
    scanf("%d",&a[0][i]);
    t[0]=t[0]+a[0][i];
}
t[0]/=3;

printf("英语成绩分别为:");

for(i=0; i<3; i++)
{
    scanf("%d",&a[1][i]);
    t[1]=t[1]+a[1][i];
}
t[1]/=3;

printf("程序设计基础成绩分别为:");

for(i=0; i<3; i++)
{
    scanf("%d",&a[2][i]);
    t[2]=t[2]+a[2][i];
}
t[2]/=3;

printf("软件工程导论成绩分别为:");

for(i=0; i<3; i++)
{
    scanf("%d",&a[3][i]);
    t[3]=t[3]+a[3][i];
}
t[3]/=3;

printf("高数平均分为:%d\n",t[0]);

printf("英语平均分为:%d\n",t[1]);

printf("程序设计基础平均分为:%d\n",t[2]);


printf("软件工程导论平均分为:%d\n",t[3]);

return 0;

}

图片说明

第四个和前三个一样,为什么输出的是0?怎么解决?

a[3][4]这个数字最大只能是a[2][3],不能是a[3][i]