0
已解决
#include<iostream>
#include<algorithm>
using namespace std;
struct p{
string s;//名字
int y,m,d;//年月日
}a[105];
bool cmp(p a,p b){
if(a.y!=b.y){
return a.y<b.y;
}else{
if(a.m!=b.m){
return a.m<b.m;
}else{
return a.d<b.d;
}
}
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].s>>a[i].y>>a[i].m>>a[i].d;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].s<<endl;
}
return 0;
}
我心态又崩了!
黄依成在2020-05-27 22:17:10追加了内容
80分
黄依成在2020-05-28 12:13:58追加了内容
顶!
0
已采纳
这个挺简单的,我都做过了:
- 结构体 a{
- 字符串 l;
- 定义 b,c,m,n;
- }d[10010];
- 函数 cmp(a x,a y)
- {
- if(x.b!=y.b)
- return x.b<y.b;
- if(x.c!=y.c)
- return x.c<y.c;
- if(x.m!=y.m)
- return x.m<y.m;
- return x.n>y.n;
- }
- 主函数
- {
- 定义 h,i,j,k;
- cin>>h;
- for(j=0;j<h;j++)
- {
- cin>>d[j].l>>d[j].b>>d[j].c>>d[j].m;
- d[j].n=j;
- }
- sort(d,d+h,cmp);
- for(j=0;j<h;j++) cout<<d[j].l<<endl;
徐子宸在2020-05-28 17:59:59追加了内容
看在同班同学的面上,采纳吧
1
0
- struct stu
- {
- string name;
- int a,b,c,i;
- }x[101];
- //结构体
- bool cmp(stu d,stu e)//重置sort排列顺序
- {
- int i;
- if(d.a!=e.a)
- return d.a<e.a;
- if(d.b!=e.b)
- return d.b<e.b;
- if(d.c!=e.c)
- return d.c<e.c;
- return d.i>e.i;
- }
- 主函数:
- n,定义输入;
- for i=1~n
- {
- cin>>x[i].name>>x[i].a>>x[i].b>>x[i].c;
- x[i].i=i;
- }
- sort x数组,用cmp。
- for i=1~n
- 输出x[i].name并换行
- AC了。。。
