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