c语言小白数组的问题以及%f的问题

首先这个是一个学生成绩系统的小问题

在开头对于数组的定义,对于其中量的问题不太理解{0,0,0,0,0,0,}就是这个
我在下面的代码段无法找到二维数组的其中一个数据,只有通过修改i,j的数值一遍一遍的尝试找位置
其次是在case(1)(2)中最后一个printf是为了求出平均数,但是如果我将%d改成%f的话(因为开头zonghe变量是float类型)
会显示不出来数据,用%d显示又不能精确到小数,所以很苦恼,修改了好多次都不成功


#include <stdio.h>
int main()
{
 int a[5][6]={{0,0,0,0,0,0},{0,3,6,7,9,1},{0,4,9,2,1,6},{0,8,7,6,5,3},{0,1,3,6,9,5}};
 int i,j,shuzi,xuehao;
 int sum,zonghe=0;
printf("所有人成绩为:\n");
for(i=1;i<=4;i++)
 {
  printf("%d:  ",i);
  for(j=1;j<=5;j++)
   printf("%d ",a[i][j]);
   printf("\n");
 }
 printf("选择查询方式:\n");
 printf("1. 按行查询,可查询某个学生所有课程成绩和平均成绩\n");
 printf("2. 按列查询,可查询某门课所有学生成绩和该门课平均成绩\n");
 printf("3. 按行列查询,可查询某个学生某门课成绩\n");
 scanf("%d",&shuzi);
 switch (shuzi) 
 {
 
 
 case 1:
  printf("请输入学生的学号:\n");
   scanf("%d",&xuehao);
   printf("该学生的成绩为:\n");
    for(j=0;j<5;j++)
     {
     printf("%d ",a[xuehao][j+1]);
     }
     printf("\n");
     for(j=0;j<5;j++)
     {
      sum=a[xuehao][j+1];
      zonghe=zonghe+sum;
     }
      zonghe=zonghe/5;
     printf("该学生的平均成绩为:\n%1.1d",zonghe);
break;

 case 2:
   printf("请输入课程号:\n");
    scanf("%d",&xuehao);
    printf("该课程的成绩为:\n");
     for(j=0;j<4;j++)
      {
      printf("%d ",a[j+1][xuehao]);
      }
      printf("\n");
      for(j=0;j<4;j++)
      {
       sum=a[j+1][xuehao];
       zonghe=zonghe+sum;
      }
       zonghe=zonghe/5;
      printf("该课程的平均成绩为:\n%1.1f",zonghe);
break;

case 3:
   printf("请输入几行几列:\n");
    scanf("%d\n%d",&i,&j);
     printf("该学生的成绩为:\n");
      printf("%d ",a[i][j]);
       printf("\n");
      
break;
 }
}


横着看太不好理解,你把它竖起来就好了

int a[5][6]=
{
{0,0,0,0,0,0},//这对应的是a[0][0]到a[0][5]
{0,3,6,7,9,1},//a[1][0]到a[1][5]
{0,4,9,2,1,6},
{0,8,7,6,5,3},
{0,1,3,6,9,5}//a[4][0]到a[4][5]
};

数组索引从0开始
2.zonghe这个变量类型本身是个int,它就存不下小数啊,要么你直接写printf("%f",zonghe/5f),要么你把它定义成float再求值,要么你重新定义个float型的变量来存平均数,不要非把结果写回sum里

%f说的是哪一行?


#include <stdio.h>
int main()
{
    int a[5][6]={{0,0,0,0,0,0},{0,3,6,7,9,1},{0,4,9,2,1,6},{0,8,7,6,5,3},{0,1,3,6,9,5}};
    int i,j,shuzi,xuehao;
    float sum,zonghe=0;
    printf("所有人成绩为:\n");
    for(i=1;i<=4;i++)
    {
        printf("%d:  ",i);
        for(j=1;j<=5;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    printf("选择查询方式:\n");
    printf("1. 按行查询,可查询某个学生所有课程成绩和平均成绩\n");
    printf("2. 按列查询,可查询某门课所有学生成绩和该门课平均成绩\n");
    printf("3. 按行列查询,可查询某个学生某门课成绩\n");
    scanf("%d",&shuzi);
    switch (shuzi) 
    {
    case 1:
        printf("请输入学生的学号:\n");
        scanf("%d",&xuehao);
        printf("该学生的成绩为:\n");
        for(j=0;j<5;j++)
        {
            printf("%d ",a[xuehao][j+1]);
        }
        printf("\n");
        for(j=0;j<5;j++)
            zonghe=zonghe+a[xuehao][j+1];
        zonghe=zonghe/5;
        printf("该学生的平均成绩为:\n%.1f",zonghe);
        break;
    case 2:
        printf("请输入课程号:\n");
        scanf("%d",&xuehao);
        printf("该课程的成绩为:\n");
        for(j=0;j<4;j++)
        {
            printf("%d ",a[j+1][xuehao]);
        }
        printf("\n");
        for(j=0;j<4;j++)
            zonghe=zonghe+a[j+1][xuehao];
        zonghe=zonghe/5;
        printf("该课程的平均成绩为:\n%1.1f",zonghe);
        break;
    case 3:
        printf("请输入几行几列:\n");
        scanf("%d\n%d",&i,&j);
        printf("该学生的成绩为:\n");
        printf("%d ",a[i][j]);
        printf("\n");
        break;
    }
}

因为数组要占满

你zonghe定义的是int型,把它改成float就可以了