第一次#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;
}
在这里提前感谢