给你说一下主要问题:
**函数里面第五个判断的c你写成了e,导致最后一个判断总是不成功(你的c是学生干部,但是e是论文数量)**
调整后的AC代码如下
``````cpp
#include<bits/stdc++.h>
using namespace std;
string name;
int pjcj,pycj;
char xsgb,xbsfxs;
int lw;
string maxname;
int maxmoney=-1;
long long z=0;
int n;
int x;
int money(int a,int b,char c,char d,int e,int f){
if(a>80&&e>=1) f+=8000;
if(a>85&&b>80) f+=4000;
if(a>90) f+=2000;
if(a>85&&d=='Y') f+=1000;
if(b>80&&c=='Y') f+=850;
return f;
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>name>>pjcj>>pycj>>xsgb>>xbsfxs>>lw;
x=money(pjcj,pycj,xsgb,xbsfxs,lw,0);
if(x>maxmoney){
maxname=name;
maxmoney=x;
}
z+=x;
}
cout<<maxname<<endl;
cout<<maxmoney<<endl;
cout<<z;
return 0;
}
``````
插一嘴,以后的字符类型的变量,无论存储几个最好用string,避免一些不必要的麻烦(当然你如果想用char当我没说)
[AC记录](https://www.luogu.com.cn/record/125984740)
by shenyibo12200 @ 2023-09-24 19:16:39