求助在自己电脑上能过,提交会RE或者WA
查看原帖
求助在自己电脑上能过,提交会RE或者WA
693707
little_bo楼主2022/9/4 14:02

觉得和用getchar读入有关系,自己电脑上跑的是:

#include<bits/stdc++.h>
using namespace std;
struct person{
    int score[100];
    int size;
}per[21];

bool big(person a,person b){
    if(a.size>b.size)return true;
    else if(a.size<b.size)return false;
    else{
        for(int i=0;i<a.size;i++){
            if(a.score[i]>b.score[i])return  true;
            else if(a.score[i]<b.score[i])return false;
        }
    }
    return true;
}

void read(int i){
    int j=0;
    per[i].size=0;
    char c=getchar();
    while(c!='\n'){
        per[i].size++;
        per[i].score[j]=c-'0';
        j++;
        c=getchar();
    }
}

int main(){
    int n;
    cin>>n;
    getchar();
    for(int i=1;i<=n;i++){
        read(i);
    }
    int maxid=1;
    for(int i=2;i<=n;i++){
        if(big(per[i],per[maxid]))maxid=i;
    }
    cout<<maxid<<endl;
    for(int i=0;i<per[maxid].size;i++){
        cout<<per[maxid].score[i];
    }
    return 0;
}

后来改成这个也还是过不去

#include<bits/stdc++.h>
using namespace std;
struct person{
    int score[110];
    int size;
}per[21];

bool big(person a,person b){
    if(a.size>b.size)return true;
    else if(a.size<b.size)return false;
    else{
        for(int i=0;i<a.size;i++){
            if(a.score[i]>b.score[i])return  true;
            else if(a.score[i]<b.score[i])return false;
        }
    }
    return true;
}

void read(int i){
    int j=0;
    per[i].size=0;
    char c=getchar();
    while(c!='\r'){//改成了'\r'
        per[i].size++;
        per[i].score[j]=c-'0';
        j++;
        c=getchar();
    }
}

int main(){
    int n;
    cin>>n;
    getchar();
    getchar();//增加了一个getchar
    for(int i=1;i<=n;i++){
        read(i);
        getchar();//增加了一个getchar
    }
    int maxid=1;
    for(int i=2;i<=n;i++){
        if(big(per[i],per[maxid]))maxid=i;
    }
    cout<<maxid<<endl;
    for(int i=0;i<per[maxid].size;i++){
        cout<<per[maxid].score[i];
    }
    return 0;
}
2022/9/4 14:02
加载中...