64求救

P1104 生日

aleavf @ 2024-04-09 18:40:54

最后两个点过不去

#include<bits/stdc++.h>
using namespace std;
typedef struct{
    string xingming;
    int n;
    int y;
    int r;
}stu;
int e;
int main(){
    cin>>e;
    stu a[e];
    for(int i=0;i<e;i++){
        cin>>a[i].xingming>>a[i].n>>a[i].y>>a[i].r;
    }
    for(int i=0;i<e;i++){
        for(int j=0;j<e-i-1;j++){
            if(a[j].n>a[j+1].n){//先比较年 
                swap(a[j],a[j+1]);
            }
            if(a[j].n==a[j+1].n){//年相等,比较月 
                if(a[j].y>a[j+1].y){
                    swap(a[j],a[j+1]);
                }
                if(a[j].y==a[j+1].y){//月相等,比较日 
                    if(a[j].r>a[j+1].r){
                        swap(a[j],a[j+1]);
                    }
                }
            }
        }
    }
    for(int i=0;i<e;i++){
        cout<<a[i].xingming<<endl;
    }
}

by panrong @ 2024-04-09 19:22:43

@aleavf 生日相同时,输入靠后的先输出


by aleavf @ 2024-04-09 19:28:35

啊啊啊啊!!!!(没看题,以为先输入的先输出)


by aleavf @ 2024-04-09 19:34:43

我又来求救了,还是最后两个有问题

#include<bits/stdc++.h>
using namespace std;
typedef struct{
    string xingming;
    int n;
    int y;
    int r;
    int x;
}stu;
int e;
int main(){
    cin>>e;
    stu a[e];
    for(int i=0;i<e;i++){
        cin>>a[i].xingming>>a[i].n>>a[i].y>>a[i].r;
        a[i].x=i+1;
    }
    for(int i=0;i<e;i++){
        for(int j=0;j<e-i-1;j++){
            if(a[j].n>a[j+1].n){//先比较年 
                swap(a[j],a[j+1]);
            }
            if(a[j].n==a[j+1].n){//年相等,比较月 
                if(a[j].y>a[j+1].y){
                    swap(a[j],a[j+1]);
                }
                if(a[j].y==a[j+1].y){//月相等,比较日 
                    if(a[j].r>a[j+1].r){
                        swap(a[j],a[j+1]);
                    }
                    else{
                    if(a[j].r==a[j].r&&a[j].x<a[j+1].x){
                        swap(a[j],a[j+1]);
                    }
                    }
                }
            }
        }
    }
    for(int i=0;i<e;i++){
        cout<<a[i].xingming<<endl;
    }
}

by aleavf @ 2024-04-09 19:41:14

@panrong 改完之后还是错的


by panrong @ 2024-04-10 11:46:48

@aleavf 建议用sort排序


by zhangwenjun @ 2024-04-21 14:45:44

生日相同时,输入靠后的先输出


|