这是哪里出了问题

P1104 生日

ny_kuangbowen @ 2024-06-10 15:57:30

#include<bits/stdc++.h>
using namespace std;
const int N=100;
typedef long long ll;
int n;
struct sd{
    string s;
    int a,b,c;
};
bool cmp(sd&k,sd&l){
    if(k.a==l.a){
        if(k.b==l.b){
            return k.c<l.c;
        }
        else{
            k.b<l.b;
        }
    }
    else{
        return k.a<l.a;
    }
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin>>n;
    sd w[n+1];

    for(int i=n;i>=1;i--){
        cin>>w[i].s>>w[i].a>>w[i].b>>w[i].c;
    }
    stable_sort(w+1,w+1+n,cmp);
    for(int i=1;i<=n;i++){
        cout<<w[i].s<<'\n';
    }
    return 0;
}

by 王逸辰 @ 2024-06-10 16:38:13

@ny_kuangbowen

这是我的正确代码:

#include<bits/stdc++.h>
using namespace std;
struct h{
    string na;
    int y,m,d,k;
}a[101];
struct o{
    string na1;
    int k1;
}l[101];
int main(){
    int n,p;
    cin>>n;
    p=n;
    for(int i=1;i<=n;i++){
        cin>>a[i].na>>a[i].y>>a[i].m>>a[i].d;
        a[i].k=a[i].y*1000+a[i].m*32+a[i].d;
        l[i].k1=a[i].k;
        l[i].na1=a[i].na;
    }
    for(int i=1;i<=n;i++){
        a[p].na=l[i].na1;
        a[p].k=l[i].k1;
        p--;
    }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n-i;j++)
            if(a[j].k>a[j+1].k){
                swap(a[j].k,a[j+1].k);
                swap(a[j].na,a[j+1].na);
            }
    for(int i=1;i<=n;i++)
        cout<<a[i].na<<endl;
    return 0;
}

by ny_wxy @ 2024-06-10 18:32:32

排序里面第一个else里面没有return


|