怎么编译这题。
下面是我的一个思路,供参考:
为了后面打印和计算方便,可以把存储学生姓名的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;
}