为什么运行结果里的程序等级不对啊

img

img


为什么我运行结果的成绩不对啊,我哪里错了?我找不出来💔💔大家帮看看,可以吗

计算等级的那行错了,把 a=(s[i][j])/10改为 a=(s[i][j-1])/10即可,因为j-1才是平均分数的那一列,修改如下:

#include <iostream>
using namespace std;
#define N 3
#define M 6

int main(void){
    
    float s[N][M];
    float sum;
    int i,j;
    printf("请输入3个学生的学号、语文成绩、数学成绩,英语成绩;\n");
    for(i=0;i<N;i++){
        for(j=0;j<M-2;j++){
            scanf("%f",&s[i][j]);
        //    printf("s[%d][%d]=%f ",i,j,s[i][j]);
        }
    //    printf("\n");
    } 

    
    for(i=0;i<N;i++){
        sum=0.0f;
        for(j=1;j<M-2;j++){
            sum=sum+s[i][j];
        //    printf("s[%d][%d]=%f,sum=%f\n",i,j,s[i][j],sum);
        }
        s[i][j]=sum/(M-3);
        //printf("sum=%f,s[%d][%d]=%f\n",sum,i,j,s[i][j]);
    }
    printf("\n");
    
    printf("学号  语文  数学  英语  平均成绩  成绩等级\n");
    printf("------------------------------------------\n");
    for(i=0;i<N;i++){
        for(j=0;j<M-1;j++){
            printf("%5.0f",s[i][j]);
        }
        int a;
        a=(s[i][j-1])/10;
        switch(a){
            case 9:cout<<"  1"<<endl;break;
            case 8:cout<<"  2"<<endl;break;
            case 7:cout<<" 3"<<endl;break;
            case 6:cout<<" 4"<<endl;break;
            default:cout<<" 5"<<endl;
        }
            
        printf("\n");
    } 
    
    printf("--------------------------------------------\n");
    return 0;
} 

img

仅供参考,望采纳~

img