解题思路:结构体类型排序,运用sort函数
注意事项:
自定义比较方法:bool cmp(struct Student &a, struct Student &b)
小于5人,则全部输出
参考代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct Student {
int id;
int score[3];
int sum;
}S[301];//结构体定义,结构体数组
bool cmp(struct Student &a, struct Student &b)
{
if (a.sum != b.sum) return a.sum > b.sum;//总分不相等,按总分从大到小排
if (a.score[0] != b.score[0]) return a.score[0] > b.score[0];//前提总分相等,语文分数不相等,按语文分数从大到小排
else return a.id < b.id;//总分和语文分数都相等,按学号从小到大排
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
S[i].sum = 0;//初始化为0
for (int j = 0; j < 3; j++)
{
cin >> S[i].score[j];
S[i].sum += S[i].score[j];
}
S[i].id = i+1;
}
sort(S, S + n, cmp);
for (int i = 0; i < 5&&S[i].sum!=0; i++)//小于5个人则判断其有无成绩,全部输出。
cout << S[i].id << " " << S[i].sum << endl;
return 0;
}
0.0分
1 人评分
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)万恶的long long浏览:906 |
WU-格式化数据输出 (C++代码)浏览:1312 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:687 |
【蟠桃记】 (C语言代码)浏览:1084 |
P1000 (C语言代码)浏览:911 |
字符串输入输出函数 (C语言代码)浏览:2604 |
出圈】指针malloc版浏览:377 |
2^k进制数 (C语言描述,蓝桥杯)浏览:1457 |
1035 题解浏览:875 |
程序员的表白 (C语言代码)浏览:678 |