问题标题: 酷町堂:1550 祝福短信

0
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了。。。
我要回答