为什么爆破0

P1051 [NOIP2005 提高组] 谁拿了最多奖学金

给你说一下主要问题: **函数里面第五个判断的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


|