题意
给出一些人的成绩,按照信息技术的成绩排序,最后输出,还要加上数学和信息技术成绩的排名。
思路
题目过水,直接模拟不解释了,但是要小心有坑。
代码
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
struct node{
int chi,mat,eng,com,p;
}a[46];
struct nod{
int mat,s;
}b[46];
int cmp1(node x,node y) {return x.com>y.com;}
int cmp2(nod x,nod y) {return x.mat>y.mat;}
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
scanf("%d%d%d%d",&a[i].chi,&a[i].mat,&a[i].eng,&a[i].com);
b[i].mat=a[i].mat;
b[i].s=i;
}
sort(b+1,b+n+1,cmp2);
for (int i=1;i<=n;i++) a[b[i].s].p=i;
sort(a+1,a+n+1,cmp1);
for (int i=1;i<=n;i++)
printf("%4d%5d%5d%5d%5d%5d \n",a[i].chi,a[i].mat,a[i].eng,a[i].com,a[i].p,i);
}