为什么我给a[5][3]赋值后,输出不是按照我想要的顺序来的呀?

#include<stdio.h>
int main()
{
int a[5][3],i,j,m,n,count=0;
float average=0.0,sum=0,num;

printf("please input students' score (from math to c to foxpro)\n");

for(i=1;i<=3;i++)
{
    for(j=1;j<=5;j++)
    {
        scanf("%d",&a[i-1][j-1]);
    }
}

for(i=1;i<=3;i++)
{
    for(j=1;j<=5;j++)
    {    
        printf("a[%d][%d]=%d\t",i,j,a[i-1][j-1]);
        count++;    
    }
    if(count%5==0)
    {
        printf("\n");    
    }
}//以35列的形式输出成绩 


for(m=0;m<=2;m++)
{
    for(n=0;n<=4;n++)
    {
        sum=sum+a[m][n];
    }
}
num=(m-1)*(n-1);
average=sum/num;
printf("所有成绩的平均分为%f\n",average);

int p,q,r;
float summ=0.0,averm;
for(p=0;p<=4;p++)
{
    summ=summ+a[0][p];
}
averm=summ/5.0;
printf("所有学生的数学平均成绩为%f\n",averm);
float sumc=0.0,averc;
    for(q=0;q<=4;q++)
    {
        sumc=sumc+a[1][q];
    }
    averc=sumc/5.0;
    printf("所有学生的c语言平均成绩为%f\n",averc);
    float sumf=0.0,averf;
        for(r=0;r<=4;r++)
        {
            sumf=sumf+a[2][r];
        }
        averf=sumf/5.0;
        printf("所有学生的forpro平均成绩为%f\n",averf);    
return 0;

    

}

#include<stdio.h>
int main()
{
int a[5][3],i,j,m,n,count=0;
float average=0.0,sum=0,num;

printf("please input students' score (from math to c to foxpro)\n");

for(i=1;i<=5;i++)
{
    for(j=1;j<=3;j++)
    {
        scanf("%d",&a[i-1][j-1]);
    }
}

for(i=1;i<=5;i++)
{
    for(j=1;j<=3;j++)
    {    
        printf("a[%d][%d]=%d\t",i,j,a[i-1][j-1]);
        count++;    
    }
    if(count%3==0)
    {
        printf("\n");    
    }
}//以35列的形式输出成绩 


for(m=0;m<=4;m++)
{
    for(n=0;n<=2;n++)
    {
        sum=sum+a[m][n];
    }
}
num=m*n;

average=sum/num;
printf("所有成绩的平均分为%f\n",average);

int p,q,r;
float summ=0.0,averm;
for(p=0;p<=4;p++)
{
    summ=summ+a[p][0];
}
averm=summ/5.0;
printf("所有学生的数学平均成绩为%f\n",averm);
float sumc=0.0,averc;
    for(q=0;q<=4;q++)
    {
        sumc=sumc+a[q][1];
    }
    averc=sumc/5.0;
    printf("所有学生的c语言平均成绩为%f\n",averc);
    float sumf=0.0,averf;
        for(r=0;r<=4;r++)
        {
            sumf=sumf+a[r][2];
        }
        averf=sumf/5.0;
        printf("所有学生的forpro平均成绩为%f\n",averf);    
return 0;

    

}
修改之后,能够实现我想要的功能了,但怎么优化,这看起来有繁琐,又臃肿