觉得和用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;
}