数组问题~谁帮我看看
输入3个学生3门课程,找出总分最高,找出不及格的学生和其所有成绩,统计每科都大于85的学生数。程序可以运行但是当总分最大的是第一个学生时就出错了
代码如下
#include<stdio.h>
void main()
{
int a[3][5],i,j,max,max_i,flag,n=0;
for(i=0;i<3;i++)
{
a[i][0]=10001+i;
}
for(i=0;i<3;i++)
{
scanf("%d%d%d",&a[i][1],&a[i][2],&a[i][3]);
}
for(i=0;i<3;i++)
{
a[i][4]=a[i][1]+a[i][2]+a[i][3];
}
for(i=0;i<3;i++)
{
max=a[0][4];
if(a[i][4]>max)
{
max=a[i][4];
max_i=i;
}
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\n");
}
printf("总分最高的是%d为%d\n",a[max_i][0],a[max_i][4]);
for(i=0;i<3;i++)
{
flag=1;
for(j=1;j<4;j++)
{
if(a[i][j]<60)
{
flag=0;
break;
}
}
if(flag==0)
printf("不及格的%4d%4d%4d%4d\n",a[i][0],a[i][1],a[i][2],a[i][3]);
}
for(i=0;i<3;i++)
{
flag=1;
for(j=1;j<4;j++)
{
if(a[i][j]<85)
{
flag=0;
break;
}
}
if(flag==1)
n++;
}
printf("分数都在85的有%d人\n",n);
}