Ghy_boy @ 2023-11-18 10:56:53
#include<bits/stdc++.h>
using namespace std;
struct studned{
string name;
long long year,month,r;
}a[110];
int main()
{
studned stu;
stu.year=0;
int d;
cin>>d;
for(int i=0;i<d;i++){
cin>>a[i].name>>a[i].year>>a[i].month>>a[i].r;
}
for(int i=1;i<=d;i++)
for(int j=i+1;j<=d;j++)
if((a[i].year<a[j].year)||(a[i].year==a[j].year&&a[i].month<a[j].month)||(a[i].year==a[j].year&&a[i].month<a[j].month&&a[i].r<a[j].r)){
swap(a[i],a[j]);
}
for(int i=1;i<=d;i++){
cout<<a[i].name<<endl;
}
return 0;
}
by Lyw_and_Segment_Tree @ 2023-11-18 11:14:02
你的冒泡似乎是错误的,因为冒泡的比较是两个元素a[i]
和a[i+1]
再说你写个cmp不香吗?
而且你没有去比较名字的字典序大小
by ALPHA_wule @ 2023-11-18 22:13:01
兄台,你得比较名字和加入顺序啊!