false应该改为true吧...
(出生日越小岁数更大)
by KDL_ANIPLEX @ 2023-07-03 15:40:31
# 下次询问前自己先用样例试试
1.没换行
2.输出顺序反了
最后应改为:
```cpp
for(int i=n-1;i>=0;i--)
{
cout<<oi[i].name<<endl;
}
```
这是最明显的两个错误
此外你都用结构体了,完全没必要用
```cpp
oi[i].sr=oi[i].sr_1*365+oi[i].sr_2*30+oi[i].sr;
```
也可以不用冒泡换(自认为)更好用的sort(缺点:快排不稳定,最好手写cmp),然后自定义cmp或者重载运算符
我在你基础上改的AC代码:
```cpp
#include<bits/stdc++.h>
using namespace std;
struct stu
{
string name;
int sr_1,sr_2,sr_3;
int level;
bool operator <(stu b)
{
if(sr_1!=b.sr_1) return sr_1>b.sr_1;
if(sr_2!=b.sr_2) return sr_2>b.sr_2;
if(sr_3!=b.sr_3) return sr_3>b.sr_3;
return level<b.level;
}
}oi[100];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>oi[i].name>>oi[i].sr_1>>oi[i].sr_2>>oi[i].sr_3;
oi[i].level=i;
}
sort(oi,oi+n);
for(int i=n-1;i>=0;i--)
{
cout<<oi[i].name<<endl;
}
return 0;
}
```
by kk1501201 @ 2023-07-03 15:40:31
@[zsjaaaxy](/user/953660) 你要是这么写,计算总日期的时候得判断是哪个月,是否是闰年,但凡有点常识都会知道,所以你得把那个改了,而且你也可以直接在结构体重载小于号,求出值之后sort一变就行
by calm_alone @ 2023-07-03 15:43:13
对不起 我疏忽了
谢谢 @[calm_alone](/user/811226) @[kk1501201](/user/259625) @[XiaoKaiWen1](/user/975287)
此贴结(验证码 2b4n 祭)
by zsjaaaxyzgfwpl1314 @ 2023-07-03 15:46:14