为什么运行时要输入七个学生成绩和学号?

题目:
使用数组完成,功能如下:
1输入6个学生成绩及学号
2找出最高分、最低分的学生学号及成绩
3求出全班平均分
4求出全班高于平均分的学生人数

写的代码:
(为什么运行时要输入七个学生成绩和学号?)


#include<stdio.h>
struct STU
{int stild;
float score;
}
stus[6];
int main()
{
 int a[6],b[6],i,j,k,m;
 float aver;
 printf("请输入学生成绩和学号:\n");
 for (i=0;i<7;i++)
 {
  scanf("%d %d",&a[i],&b[i]);
 }
 aver = float(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6])/7;
 printf("平均分为:%.2f\n",aver);
 for(i=0;i<7;i++)
 {
        for(k=i,j=k+1;j<7;j+=1)
            if(a[k]<a[j])
                k=j;
         if(k!=i)
   {
             j=a[k],a[k]=a[i],a[i]=j;
             j=b[k],b[k]=b[i],b[i]=j;
         }
 }
    printf("最高分学生学号为%d,成绩为%d\n",b[0],a[0]);
    printf("最低分学生学号为%d,成绩为%d\n",b[6],a[6]);
 for (i=0;i<7;i++)
 {
  if (a[i]>aver)
  {
   m+=1;
  }
 }
 printf("高于平均分的学生人数为%d",m);
 return 0; 
}

输入循环条件写小于6
小于七的话
0123456自然要输入七个数


#include<stdio.h>
struct STU
{int stild;
float score;
}
stus[6];
int main()
{
 int a[6],b[6],i,j,k,m;
 float aver;
 printf("请输入学生成绩和学号:\n");
 for (i=0;i<6;i++)
 {
  scanf("%d %d",&a[i],&b[i]);
 }
 aver = float(a[0]+a[1]+a[2]+a[3]+a[4]+a[5])/6;
 printf("平均分为:%.2f\n",aver);
 for(i=0;i<6;i++)
 {
        for(k=i,j=k+1;j<6;j+=1)
            if(a[k]<a[j])
                k=j;
         if(k!=i)
   {
             j=a[k],a[k]=a[i],a[i]=j;
             j=b[k],b[k]=b[i],b[i]=j;
         }
 }
    printf("最高分学生学号为%d,成绩为%d\n",b[0],a[0]);
    printf("最低分学生学号为%d,成绩为%d\n",b[6],a[6]);
 for (i=0;i<6;i++)
 {
  if (a[i]>aver)
  {
   m+=1;
  }
 }
 printf("高于平均分的学生人数为%d",m);
 return 0; 
}
 

所有7改为数字6
平均数里去掉a[6]

修改循环条件