0
已解决
90分代码如下:
#include<bits/stdc++.h>
using namespace std;
struct stu{
string name;
int y;
int m;
int d;
}a[110];
bool cmp(stu a,stu b)
{
if (a.y!=b.y)
return a.y>b.y;
if (a.m!=b.m)
return a.m>b.m;
if (a.d!=b.d)
return a.d>b.d;
if(a.name!=b.name)
return a.name>b.name;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].name>>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].name<<endl;
}
return 0;
}
谁的回答能让我AC
我就采纳谁!!!
0
已采纳
这题结构没问题,但是结构体函数很容易考输入靠前靠后,所以要看清题目,题目已经说了靠前的先输出,那么你就在struct的函数里来一个flag用来储存下标,flag一定要跟着i变,所以cin完后,a[i].falg要等于i,因为这样才能比较,然后就是你的代码问题
或许你是理解错了吧,题目并没说还要看名字哦。
结构体一定要定义一个flag(就是存下标的一个量)
cin后也一定要将a[i].falg等于i 哦!!
此题就ac
0
0


