这样交换相当于没换。
题目还要求“如果有两个同学生日相同,输入靠后的同学先输出”。
by ud2_ @ 2022-01-21 22:13:07
```cpp
#include<bits/stdc++.h>
using namespace std;
struct stu
{
string name;
int n,y,r;
}a[110];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i].name>>a[i].n>>a[i].y>>a[i].r;
for(int i=0;i<n;i++)
{
for(int j=0;j<n-1;j++)
{
if(a[j].n*10000+a[j].y*100+a[j].r>=a[j+1].n*10000+a[j+1].y*100+a[j+1].r)
{
stu t;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int i=0;i<n;i++)
cout<<a[i].name<<endl;
return 0;
}
80
```
80分了,再求助一下
by peaple_with_a_dream @ 2022-01-22 15:01:25
```cpp
#include<iostream>
#include<algorithm>
using namespace std;
struct stu{
string b;
long long c,d,e,k;
}a[101];
long long n;
bool cmp(stu f,stu g){
if(f.c!=g.c) return f.c<g.c;
else{
if(f.d!=g.d) return f.d<g.d;
else{
if(f.e!=g.e) return f.e<g.e;
else return f.k>g.k;
}
}
}
int main(){
cin>>n;
for(long long i=1;i<=n;i++){
cin>>a[i].b>>a[i].c>>a[i].d>>a[i].e;
a[i].k=i;
}
stable_sort(a+1,a+n+1,cmp);
for(long long i=1;i<=n;i++) cout<<a[i].b<<endl;
return 0;
}
```
by xumengxing @ 2022-02-15 12:20:03