500亿网站建设wordpress首页模块修改
news/
2025/10/3 10:25:33/
文章来源:
500亿网站建设,wordpress首页模块修改,做淘宝客网站能有效果吗,百度账号怎么注册题目描述 现有两门选修课#xff0c;每门选修课都有一部分学生选修#xff0c;每个学生都有选修课的成绩#xff0c;需要你找出同时选修了两门选修课的学生#xff0c;先按照班级进行划分#xff0c;班级编号小的先输出#xff0c;每个班级按照两门选修课成绩和的降序排序…题目描述 现有两门选修课每门选修课都有一部分学生选修每个学生都有选修课的成绩需要你找出同时选修了两门选修课的学生先按照班级进行划分班级编号小的先输出每个班级按照两门选修课成绩和的降序排序成绩相同时按照学生的学号升序排序。
输入描述 第一行为第一门选修课学生的成绩
第二行为第二门选修课学生的成绩
每行数据中学生之间以英文分号分隔每个学生的学号和成绩以英文逗号分隔
学生学号的格式为8 88位数字
2位院系编号入学年份后2位院系内部1位专业编号所在班级3位学号
学生成绩的取值范围为[0 , 100 0,1000,100]之间的整数
两门选修课选修学生数的取值范围为[1 − 2000 1-20001−2000]之间的整数。
输出描述 同时选修了两门选修课的学生的学号如果没有同时选修两门选修课的学生输出NULL,
否则先按照班级划分班级编号小的先输出每个班级先输出班级编号(学号前五位)
然后另起一行输出这个班级同时选修两门选修课的学生学号学号按照要求排序(按照两门选修课成绩和的降序成绩和相同时按照学号升序学生之间以英文分号分隔。
样例 输入
01202021,75;01201033,95;01202008,80;01203006,90;01203088,100
01202008,70;01203088,85;01202111,80;01202021,75;01201100,88
输出
01202
01202008;01202021
01203
01203088
说明
同时选修了两选修课的学生01202021 、 01202008 、 01203088 01202021、01202008、0120308801202021、01202008、01203088这三个学生两门选修课的成绩和分别为150 、 150 、 185 150、150、185150、150、185
01202021 、 01202008 01202021、0120200801202021、01202008届于01202 0120201202班的学生按照成绩和降序成绩相同时按学号升序输出的结果为01202008 ; 01202021 01202008;0120202101202008;01202021,
01203088 0120308801203088属于01203 0120301203班的学生按照成绩和降序成绩相同时按学号升序输出的结果为0120308 01203080120308
01202 0120201202的班级编号小于01203 0120301203的班级编号需要先输出。
输入
01201022,75;01202033,95;01202018,80;01203006,90;01202066,100
01202008,70;01203102,85;01202111,80;01201021,75;01201100,88输出
NULL
说明
没有同时选修了两门选修课的学生输出NULL
代码
#include bits/stdc.h
using namespace std;struct student {string num;int fs;
};vectorstudent ac;bool cmp1( student A, student B) {return A.num B.num;
}bool cmp2( student A, student B) {string s1 A.num.substr(0, 5), s2 B.num.substr(0, 5);if (s1 s2) {if (A.fs B.fs) {return A.num B.num;}return A.fs B.fs;}return s1 s2;
}int main() {int c 0;string s;for (int i 0; i 2; i) {cin s;s ;;vectorstring vs;int len s.size();string tmp;for (int i 0; i len; i) {if (s[i] ;) {vs.emplace_back(tmp);tmp ;} else {tmp s[i];}}for (string v : vs) {int p v.find(,);int a;istringstream(v.substr(p 1)) a;ac.push_back({v.substr(0, p), a});}}sort(ac.begin(), ac.end(), cmp1);vectorstudent students;for (int i 0; i ac.size(); i) {int j i;student student {ac[i].num, 0};int cnt 0;while (j ac.size() ac[j].num ac[i].num) {student.fs ac[j].fs;cnt 1;j 1;}if (cnt 2) {students.push_back(student);}i j - 1;}if (students.empty()) {cout NULL endl;return 0;}sort(students.begin(), students.end(), cmp2);// 按照题目要求输出for (int i 0; i students.size(); i) {// 先输出每个班级号string t students[i].num.substr(0, 5);cout t endl;int j i 1;while (j students.size() students[j].num.substr(0, 5) t) {j 1;}for (int k i; k j; k) {if (k ! i) {cout ;;}cout students[k].num;}cout endl;i j - 1;}return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925774.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!