King_and_Grey @ 2023-12-19 20:38:35
我服了6.4版本c++说c++ 洛谷\P1104.CDD
Warning
contro
end
Wreturn-tvoe
结果洛谷提交100分!!!!
6.4版本c++真垃圾
#include <bits/stdc++.h>
using namespace std;
struct node {
string name;
int year;
int month;
int day;
int level;
} nn[120];
bool cmp(node a,node b) {
if(a.year != b.year)
return a.year < b.year;
else {
if(a.month != b.month)
return a.month < b.month;
else if(a.day == b.day && a.month == b.month)
return a.level > b.level;
else if(a.day != b.day && a.month == b.month)
return a.day < b.day;
}
}
int main() {
int n;
cin>>n;
for(int i = 1; i <= n; ++i) {
cin>>nn[i].name>>nn[i].year>>nn[i].month>>nn[i].day;
nn[i].level = i;
}
stable_sort(nn+1,nn+1+n,cmp);
for(int i = 1; i <= n; ++i) {
cout<<nn[i].name<<endl;
}
return 0;
}
蒟蒻百思不得其解,还请大神来帮忙
一定关注!!!
by cff_0102 @ 2023-12-19 20:42:07
@greyandking 首先那是 Warning;其次原因应该是你那个 bool 函数程序怕你全部遍历完一个 else if 没进,就没有返回,告诉你这个函数不一定返回了
by Miss_SGT @ 2023-12-19 20:43:46
不造啊,我本地没问题,会不会是stable_sort导致的结果?我没见过(但网上好像有)改成sort试试
by skyskyCCC @ 2023-12-19 20:43:49
@greyandking 就是您的程序中的判断函数可能没有返回值
by cff_0102 @ 2023-12-19 20:45:14
实际上是一定有返回的,但是程序不知道,因为你只有 if else if else if,没有最后的else,程序怕你到最后一个情况,就没有返回值
by King_and_Grey @ 2023-12-19 21:06:02
@cff_0102,@skyskyCCC,@zhouchenqiao1谢谢红名大佬们!已关注!