你看看我的代码,参考一下吧
```
#include<bits/stdc++.h>
using namespace std;
int main(){
string name[150];
int y[150],m[150],d[150],num[150];
int n,i,j;
cin>>n;
for(i=1;i<=n;i++)
cin>>name[i]>>y[i]>>m[i]>>d[i];
for(i=1;i<=n;i++){
for(j=i+1;j<=n;j++){
num[i]=i;
num[j]=j+1;
if(y[i]>y[j] || (y[i]==y[j]&&m[i]>m[j]) || (y[i]==y[j]&&m[i]==m[j]&&d[i]>d[j])){
swap(name[i],name[j]);
swap(y[i],y[j]);
swap(m[i],m[j]);
swap(d[i],d[j]);
}
if(y[i]==y[j]&&m[i]==m[j]&&d[i]==d[j]){
if(num[i]<
num[j])
swap(name[i],name[j]);
swap(y[i],y[j]);
swap(m[i],m[j]);
swap(d[i],d[j]);
}
}
}
for(i=1;i<=n;i++)
cout<<name[i]<<endl;
return 0;
}
by 昊轩啥也不是 @ 2021-10-05 09:08:38
@[昊轩啥也不是](/user/506649) 就是要给一个初始编号吗?
by Stonkin @ 2021-10-05 10:47:47
@[西住真穗](/user/407007) 是的,但记住带编号时,判断年龄大小而swap时,也要swap编号
by 昊轩啥也不是 @ 2021-10-05 11:51:17
@[西住真穗](/user/407007) 不能只换出生日期不换编号,不然会wa
by 昊轩啥也不是 @ 2021-10-05 11:52:08
@[昊轩啥也不是](/user/506649) 谢谢
by Stonkin @ 2021-10-05 14:05:27