用c++写一个程序题目描述 给定n名同学的信息:{学号,语文成绩,数学成绩,英语成绩} 请按照学号从小到大进行排序,并给出总成绩 输入描述 第一行一个整数n(1<=n <= 1e6) 接下来$n$行,每行四个整数Number Chinese Math English,使用空格隔开,保证学号在int范围之内,每门课的成绩采用百分制 输出描述 输出n行,每行一条学生信息,按照学号从小到大进行排序,格式为Number Chinese Math English Sum,使用空格隔开
时间: 2024-03-30 12:36:55 浏览: 191
好的,以下是C++代码实现:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
struct student {
int num, chinese, math, english, sum;
} stu[1000005];
bool cmp(student a, student b) {
return a.num < b.num;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> stu[i].num >> stu[i].chinese >> stu[i].math >> stu[i].english;
stu[i].sum = stu[i].chinese + stu[i].math + stu[i].english;
}
sort(stu, stu + n, cmp);
for (int i = 0; i < n; i++) {
cout << stu[i].num << " " << stu[i].chinese << " " << stu[i].math << " " << stu[i].english << " " << stu[i].sum << endl;
}
return 0;
}
```
输入样例:
```
5
1 80 90 70
3 75 85 80
2 95 85 90
5 70 65 75
4 80 80 80
```
输出样例:
```
1 80 90 70 240
2 95 85 90 270
3 75 85 80 240
4 80 80 80 240
5 70 65 75 210
```
阅读全文