发布网友 发布时间:2022-04-29 17:20
共1个回答
热心网友 时间:2023-10-22 23:55
楼主写得太麻烦啦没必要用二维数组 每场考试读入一组输出一组就行啦..贴代码已经ac了 注释也给你写啦 #include<iostream> #include<algorithm> using namespace std; struct stu { string name; int score; }; bool cmp(stu a,stu b) { if(a.score>b.score) return true; if(a.score==b.score&&a.name<b.name) return true; return false; } int main() { int N,M,G,problemScore[10],problemNumber,cur,count;//problemScore[i]表示第i+1道题目的 //分数 problemNumber表示每个考生答题数 count表示过分数线人数 stu student[1000];//student储存每场考试的学生信息 while(cin>>N&&N) { count=0; cin>>M>>G; for(int i=0;i<M;i++) cin>>problemScore[i]; for(int i=0;i<N;i++) { cin>>student[i].name>>problemNumber; student[i].score=0; for(int j=0;j<problemNumber;j++) { cin>>cur; student[i].score+=problemScore[cur-1]; } if(student[i].score>=G) count++;//计算高于分数线人数 } sort(student,student+N,cmp);//按要求排序,将前count个输出即可 cout<<count<<endl; for(int i=0;i<count;i++) cout<<student[i].name<<" "<<student[i].score<<endl; } return 0; }热心网友 时间:2023-10-22 23:55
楼主写得太麻烦啦没必要用二维数组 每场考试读入一组输出一组就行啦..贴代码已经ac了 注释也给你写啦 #include<iostream> #include<algorithm> using namespace std; struct stu { string name; int score; }; bool cmp(stu a,stu b) { if(a.score>b.score) return true; if(a.score==b.score&&a.name<b.name) return true; return false; } int main() { int N,M,G,problemScore[10],problemNumber,cur,count;//problemScore[i]表示第i+1道题目的 //分数 problemNumber表示每个考生答题数 count表示过分数线人数 stu student[1000];//student储存每场考试的学生信息 while(cin>>N&&N) { count=0; cin>>M>>G; for(int i=0;i<M;i++) cin>>problemScore[i]; for(int i=0;i<N;i++) { cin>>student[i].name>>problemNumber; student[i].score=0; for(int j=0;j<problemNumber;j++) { cin>>cur; student[i].score+=problemScore[cur-1]; } if(student[i].score>=G) count++;//计算高于分数线人数 } sort(student,student+N,cmp);//按要求排序,将前count个输出即可 cout<<count<<endl; for(int i=0;i<count;i++) cout<<student[i].name<<" "<<student[i].score<<endl; } return 0; }热心网友 时间:2023-10-22 23:55
楼主写得太麻烦啦没必要用二维数组 每场考试读入一组输出一组就行啦..贴代码已经ac了 注释也给你写啦 #include<iostream> #include<algorithm> using namespace std; struct stu { string name; int score; }; bool cmp(stu a,stu b) { if(a.score>b.score) return true; if(a.score==b.score&&a.name<b.name) return true; return false; } int main() { int N,M,G,problemScore[10],problemNumber,cur,count;//problemScore[i]表示第i+1道题目的 //分数 problemNumber表示每个考生答题数 count表示过分数线人数 stu student[1000];//student储存每场考试的学生信息 while(cin>>N&&N) { count=0; cin>>M>>G; for(int i=0;i<M;i++) cin>>problemScore[i]; for(int i=0;i<N;i++) { cin>>student[i].name>>problemNumber; student[i].score=0; for(int j=0;j<problemNumber;j++) { cin>>cur; student[i].score+=problemScore[cur-1]; } if(student[i].score>=G) count++;//计算高于分数线人数 } sort(student,student+N,cmp);//按要求排序,将前count个输出即可 cout<<count<<endl; for(int i=0;i<count;i++) cout<<student[i].name<<" "<<student[i].score<<endl; } return 0; }热心网友 时间:2023-10-22 23:55
楼主写得太麻烦啦没必要用二维数组 每场考试读入一组输出一组就行啦..贴代码已经ac了 注释也给你写啦 #include<iostream> #include<algorithm> using namespace std; struct stu { string name; int score; }; bool cmp(stu a,stu b) { if(a.score>b.score) return true; if(a.score==b.score&&a.name<b.name) return true; return false; } int main() { int N,M,G,problemScore[10],problemNumber,cur,count;//problemScore[i]表示第i+1道题目的 //分数 problemNumber表示每个考生答题数 count表示过分数线人数 stu student[1000];//student储存每场考试的学生信息 while(cin>>N&&N) { count=0; cin>>M>>G; for(int i=0;i<M;i++) cin>>problemScore[i]; for(int i=0;i<N;i++) { cin>>student[i].name>>problemNumber; student[i].score=0; for(int j=0;j<problemNumber;j++) { cin>>cur; student[i].score+=problemScore[cur-1]; } if(student[i].score>=G) count++;//计算高于分数线人数 } sort(student,student+N,cmp);//按要求排序,将前count个输出即可 cout<<count<<endl; for(int i=0;i<count;i++) cout<<student[i].name<<" "<<student[i].score<<endl; } return 0; }热心网友 时间:2023-10-22 23:55
楼主写得太麻烦啦没必要用二维数组 每场考试读入一组输出一组就行啦..贴代码已经ac了 注释也给你写啦 #include<iostream> #include<algorithm> using namespace std; struct stu { string name; int score; }; bool cmp(stu a,stu b) { if(a.score>b.score) return true; if(a.score==b.score&&a.name<b.name) return true; return false; } int main() { int N,M,G,problemScore[10],problemNumber,cur,count;//problemScore[i]表示第i+1道题目的 //分数 problemNumber表示每个考生答题数 count表示过分数线人数 stu student[1000];//student储存每场考试的学生信息 while(cin>>N&&N) { count=0; cin>>M>>G; for(int i=0;i<M;i++) cin>>problemScore[i]; for(int i=0;i<N;i++) { cin>>student[i].name>>problemNumber; student[i].score=0; for(int j=0;j<problemNumber;j++) { cin>>cur; student[i].score+=problemScore[cur-1]; } if(student[i].score>=G) count++;//计算高于分数线人数 } sort(student,student+N,cmp);//按要求排序,将前count个输出即可 cout<<count<<endl; for(int i=0;i<count;i++) cout<<student[i].name<<" "<<student[i].score<<endl; } return 0; }热心网友 时间:2023-10-22 23:55
楼主写得太麻烦啦没必要用二维数组 每场考试读入一组输出一组就行啦..贴代码已经ac了 注释也给你写啦 #include<iostream> #include<algorithm> using namespace std; struct stu { string name; int score; }; bool cmp(stu a,stu b) { if(a.score>b.score) return true; if(a.score==b.score&&a.name<b.name) return true; return false; } int main() { int N,M,G,problemScore[10],problemNumber,cur,count;//problemScore[i]表示第i+1道题目的 //分数 problemNumber表示每个考生答题数 count表示过分数线人数 stu student[1000];//student储存每场考试的学生信息 while(cin>>N&&N) { count=0; cin>>M>>G; for(int i=0;i<M;i++) cin>>problemScore[i]; for(int i=0;i<N;i++) { cin>>student[i].name>>problemNumber; student[i].score=0; for(int j=0;j<problemNumber;j++) { cin>>cur; student[i].score+=problemScore[cur-1]; } if(student[i].score>=G) count++;//计算高于分数线人数 } sort(student,student+N,cmp);//按要求排序,将前count个输出即可 cout<<count<<endl; for(int i=0;i<count;i++) cout<<student[i].name<<" "<<student[i].score<<endl; } return 0; }