c语言经典求最值 数据存放在二维数组内

img

运行结果及报错内容

求和求平均都是可以的
只有最大最小它为什么只是把数组 的末位数据赋值过去

我的解答思路和尝试过的方法

二维数组内一行中的每一个数都与s[i][7]比较如果大它就将值赋过去

我想要达到的结果
#include <stdio.h>
void main()
{  int i,j,sum,s[4][10]={{0},{0,48,58,95,82,91},{0,75,84,91,83,95},{0,83,91,86,68,72}};
   float aver[3];
   
  { /*for (i=1;i<4;i++)
   {
    printf("输入第%d个同学的五门成绩:",i);
     for (j=1;j<=5;j++)
   scanf("%d",&s[i][j]);//输成绩
     }*/
}
  for (i=1;i<=3;i++)
    for (j=1;j<=5;j++)
    {    
          s[i][7]=0,s[i][8]=100;
      aver[i]=s[i][6]/5.0;//求平均分
        s[i][6]+=s[i][j];//求和    
    if (s[i][7]<=s[i][j])  s[i][7]=s[i][j];//最大 
    if (s[i][8]>=s[i][j])  s[i][8]=s[i][j];//最小 
    aver[i]=s[i][6]/5.0;//求平均分
    }
     
   printf("结果: 语文   数学    英语     政治    体育   总分   最高分    最低分  平均分\n");
   printf("***********************************************************************\n");
   for (i=1;i<=3;i++)
    {
    for(j=1;j<=8;j++)
    
        printf("%8d",s[i][j]);
        printf("    %4.2f",aver[i]);
        printf("\n");
    
    }


}



```

s[i][7]=0,s[i][8]=100;放在内循环外面

img

#include <stdio.h>
void main()
{   int i,j,sum,s[4][10]= {{0},{0,48,58,95,82,91},{0,75,84,91,83,95},{0,83,91,86,68,72}};
    float aver[3];
    {
    }
    for (i=1; i<=3; i++)
    {
        s[i][7]=0,s[i][8]=100;
        for (j=1; j<=5; j++)
        {
            aver[i]=s[i][6]/5.0;//求平均分
            s[i][6]+=s[i][j];//求和
            if (s[i][7]<=s[i][j])  s[i][7]=s[i][j];//最大
            if (s[i][8]>=s[i][j])  s[i][8]=s[i][j];//最小
            aver[i]=s[i][6]/5.0;//求平均分
        }
    }


    printf("结果: 语文   数学    英语     政治    体育   总分   最高分    最低分  平均分\n");
    printf("***********************************************************************\n");
    for (i=1; i<=3; i++)
    {
        for(j=1; j<=8; j++)
            printf("%8d",s[i][j]);
        printf("    %4.2f",aver[i]);
        printf("\n");
    }

}



第16行移到第13与第14行之间