题目在下面,请求帮助

img

img

怎么编译这题。

下面是我的一个思路,供参考:

为了后面打印和计算方便,可以把存储学生姓名的string数组o和存储学生成绩的数组i的定义提到获取学生信息之前;

然后把存储学生成绩的数组i变成二维数组,因为是需要存储N个学生M门成绩,所以需要是二维数组;

然后在获取成绩后计算出来平均分,再加个判断,平均分低于60分的下标和平均分存入相应数组即可;

最后,加上打印不及格学生信息的部分。

修改如下:

#include <iostream>
using namespace std;

int main(void){
    
//    float c=1.233;
//    cout<<c;
    
    int m,a,b,c,d,e;
    float j=0,k,t;
    cout<<"学生数:"<<endl;
    cin>>a;
    cout<<"科目数:"<<endl;
    cin>>b;
    
    string o[100]; // 把存储最多100个学生姓名拼音的数组 
    int i[100][b]; //存储最多100个学生的b门成绩 
    int fail[100]={0}; //存储成绩平均分不及格学生的下标数组 
    float failAvgScore[100]; //存储成绩不及格的学生平均分数    
    int index=0;  
        
    for(m=1;m<=a;m++){
        cout<<"请输入第"<<m<<"个学生的姓名拼音和"<<b<<"门课的成绩"<<endl;
        
        cin>>o[m-1]; //存入第m个学生的姓名 
        j=0;
        //依次存入第m个学生的b门成绩到二维数组i中 
        for(c=0;c<b;c++){
            cin>>i[m-1][c];
            t=i[m-1][c];
            j=j+t;            
        } 
        k=j/b;
    //    cout<<"k="<<k<<endl;
        
        //如果成绩平均分不及格,则把记录其下标,以及成绩平均分 
        if(k<60){
            fail[index]=m-1;
            failAvgScore[index]=k;
            index++;
        }
        
    }
    
    m=0;
    //打印结果 
    while(m<index){
        
        e = fail[m];
        cout<<o[e]<<" "<<failAvgScore[m]<<endl;
        
        
        m++;
    }
    
    
    return 0;
    
}

img