写这道题,可以使用结构体,排序用sort快速排序。
注意要使用algorithm算法头键。
源代码:
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
struct st_ {
int y,m,d;
int i;
char name[1000];
};
bool cmp(st_ a,st_ b){
if(a.y==b.y){
if(a.m==b.m){
if(a.d==b.d){
return a.i>b.i;
}
return a.d<b.d;
}
return a.m<b.m;
}
return a.y<b.y;
}
int main(){
long n;
cin>>n;
st_ st[1010];
for(long long A=0;A<n;A++){
st[A].i=A;
cin>>st[A].name>>st[A].y>>st[A].m>>st[A].d;
}
sort(st,st+n,cmp);
for(int A=0;A<n;A++){
cout<<st[A].name<<endl;
}
return 0;
}
写题解不容易,点个赞再走吧!