买奖品(sort)
题目描述:
班上刚测试了几门课,现在信息技术的老师要分析一些功课之间的成绩关系,看看每个人的信息技术课排名以及他的数学排名,并按信息技术课的成绩从高分到低分排列(数据中保证任意一学科中没有两个人的这门课成绩是一样的)。老师把任务交给了信息学最好的你,请你编程完成这个任务。
输入文件
第一行一个整数N,表示共有N个同学的成绩。
后面有N行,每行4个整数,分别表示一个同学的:语文、数学、英语、信息技术成绩。
输出文件
共N行,每行6个数据,分别对应一个同学的:语文、数学、英语、信息技术成绩 和信息技术及数学的排名。
数据范围
1<=N<=45;
每个成绩C的范围为:0<=C<=120;
样例
|
输入 |
3 90 95 89 110 95 120 78 115 96 97 103 92 | |
|
输出 |
95 120 78 115 1 1 96 87 103 92 3 2 |
DAI MAI !
#include<bits/stdc++.h>
using namespace std;
struct jp //定义结构体
{
int y,s,e,x,sp,xp;
}r[129];
bool cmp(jp x,jp y) //cmp结构
{
return x.s>y.s;
}
bool cnp(jp x,jp y) //cnp结构
{
return x.x>y.x;
}
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>r[i].y>>r[i].s>>r[i].e>>r[i].x;
sort(r+1,r+1+n,cmp);
for(int i=1;i<=n;i++)r[i].sp=i;
sort(r+1,r+1+n,cnp);
for(int i=1;i<=n;i++)r[i].xp=i;
for(int i=1;i<=n;i++)cout<<r[i].y<<" "<<r[i].s<<" "<<r[i].e<<" "<<r[i].x<<" "<<r[i].xp<<" "<<r[i].sp<<endl;
return 0;
}
编程解决成绩排名问题
该程序用于分析班级学生的成绩,特别是信息技术和数学的排名。通过输入每个学生的四门课程成绩,程序会按信息技术成绩排序并给出每门课程的排名。使用了自定义的排序函数对结构体进行比较。
1463

被折叠的 条评论
为什么被折叠?



