2024-11-24 09:24:10
发布于:福建
问题1:1e5是100000,数组开太小了
问题2:1<<32,就是8e9,要开unsigned int
问题3:输入完后,n=0
正确代码:
#include<bits/stdc++.h>
using namespace std;
struct student{
string name,id;
unsigned int total,c,m,e;
}a[1000005];
int n,m,op,k;
bool cmp(student a,student b){
return a.total<b.total;
}
int main(){
cin>>m;
for(n=1;;n++){
cin>>a[n].name;
if(a[n].name=="404_not_found"){
break;
}
cin>>a[n].id>>a[n].c>>a[n].m>>a[n].e;
a[n].total=a[n].c+a[n].m+a[n].e;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=m;i++,putchar(10)){
cin>>op>>k;
switch(op){
case 1:
cout<<a[k].name<<" "<<a[k].id;
break;
case 2:
cout<<a[k].total;
break;
case 3:
cout<<a[k].c;
break;
case 4:
cout<<a[k].m;
break;
default:
cout<<a[k].e;
break;
}
}
return 0;
}
这里空空如也
有帮助,赞一个