诸君,P1104生日,第二次ac,不明白第一次哪里错了,恳请解答
  • 板块P1104 生日
  • 楼主Spock12138
  • 当前回复10
  • 已保存回复10
  • 发布时间2021/2/18 11:27
  • 上次更新2023/11/5 03:07:31
查看原帖
诸君,P1104生日,第二次ac,不明白第一次哪里错了,恳请解答
461190
Spock12138楼主2021/2/18 11:27

第一次#5错了,看了下之前的讨论,说是生日相同,位置没有改变,但自己测试好像没问题(雾)。 第一次代码

#include<iostream>
       #include<algorithm>
       using namespace std;
       int n;
       struct BIR
       {
           double sd;
           string name;
       }bir[200];
       bool mycmp(BIR a,BIR b)
       {
            return a.sd<=b.sd;
       }
       int main()
       {
           double y,m,d;
           cin>>n;
           for(int i=0;i<n;++i)
           {
               cin>>bir[i].name>>y>>m>>d;
               bir[i].sd=y*100+m+d/100;
           }
           sort(bir,bir+n,mycmp);
 for(int i=0;i<n;++i)
 cout<<bir[i].name<<endl;
           return 0;
       }

第二次代码,在结构体里加上了int id; 代码如下

#include<iostream>
       #include<algorithm>
       using namespace std;
       int n;
       struct BIR
       {
           double sd;
           int id;
           string name;
       }bir[200];
       bool mycmp(BIR a,BIR b)
       {
  return a.sd<b.sd||(a.sd==b.sd&&a.id<b.id);
       }
       int main()
       {
           double y,m,d;
           cin>>n;
           for(int i=0;i<n;++i)
           {
               cin>>bir[i].name>>y>>m>>d;
               bir[i].id=i;
               bir[i].sd=y*100+m+d/100;
           }
           sort(bir,bir+n,mycmp);
 for(int i=0;i<n;++i)
 cout<<bir[i].name<<endl;
           return 0;
       }

在这里提前感谢

2021/2/18 11:27
加载中...