一个人的巴黎


私信TA

用户名:uq_36478041918

访问量:14982

签 名:

等  级
排  名 105
经  验 8303
参赛次数 1
文章发表 70
年  龄 0
在职情况 学生
学  校 NTU
专  业 计算机科学与技术

  自我简介:

解题思路:结构体类型排序,运用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 人评分

  评论区

  • «
  • »