求dalao帮看代码。。。一直找不到哪里错

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

```cpp #include<iostream> #include<cstdio> ```
by 귀엽다 @ 2018-07-10 15:26:03


@[林沐秋](/space/show?uid=83992) 我给您把样式调好了 ```cpp include<iostream> include<cstdio> using namespace std; int allmoney=0,maxmoney=0; struct xs { int qm,bj,lw,money=0;//期末平均 班级平均 论文数 单人奖学金 char name[250],gb,xb;//学生干部 西部省份 } xs[105]; int main() { int n; int f=0;//sddssd for(int i=1; i<=n; i++) { cin>>n; scanf("%s%d%d%s%s%d",&xs[i].name,&xs[i].qm,&xs[i].bj,&xs[i].gb,&xs[i].xb,&xs[i].lw); if(xs[i].qm>80&&xs[i].lw>=1) { xs[i].money+=8000; } if(xs[i].qm>85&&xs[i].bj>80) { xs[i].money+=4000; } if(xs[i].qm>90) { xs[i].money+=2000; } if(xs[i].qm>85&&xs[i].xb=='Y') { xs[i].money+=1000; } if(xs[i].qm>80&&xs[i].gb=='Y') { xs[i].money+=850; } allmoney+=xs[i].money; if(xs[i].money>maxmoney) { maxmoney=xs[i].money; f=i; } } printf("%c%d%d",xs[f].name,maxmoney, allmoney); return 0; } ```
by 向noip冲刺 @ 2018-07-10 15:32:54


```cpp #include<iostream> #include<cstdio> using namespace std; int allmoney=0,maxmoney=0; struct xs { int qm,bj,lw,money=0; //期末平均 班级平均 论文数 单人奖学金 char name[250],gb,xb; //学生干部 西部省份 }xs[105]; int main() { int n; int f=0; //sddssd for(int i=1;i<=n;i++) { cin>>n; scanf("%s%d%d%s%s%d",&xs[i].name,&xs[i].qm,&xs[i].bj,&xs[i].gb,&xs[i].xb,&xs[i].lw); if(xs[i].qm>80&&xs[i].lw>=1) { xs[i].money+=8000; } if(xs[i].qm>85&&xs[i].bj>80) { xs[i].money+=4000; } if(xs[i].qm>90) { xs[i].money+=2000; } if(xs[i].qm>85&&xs[i].xb=='Y') { xs[i].money+=1000; } if(xs[i].qm>80&&xs[i].gb=='Y') { xs[i].money+=850; } allmoney+=xs[i].money; if(xs[i].money>maxmoney) { maxmoney=xs[i].money; f=i; } } printf("%c\n%d\n%d",xs[f].name,maxmoney, allmoney); return 0; } ``` 先帮你整理了一下
by 귀엽다 @ 2018-07-10 15:34:59


@[林沐秋](/space/show?uid=83992) 改了一点点输出和头文件,思路感觉对的,您程序好像还没有输入就输出了
by 귀엽다 @ 2018-07-10 15:38:01


您的输入似乎有问题,但是我一般不用scanf
by 귀엽다 @ 2018-07-10 15:42:05


好了,我把![](http://cdtwd.oss-cn-shanghai.aliyuncs.com/media/uploads/2018/07/10/3b960822-df40-439e-970f-b5d6708f6fca.png) 变成 ```cpp #include<iostream> #include<cstdio> using namespace std; int allmoney=0,maxmoney=0; struct xs { int qm,bj,lw,money=0; //期末平均 班级平均 论文数 单人奖学金 char name[250],gb,xb; //学生干部 西部省份 }xs[105]; int main() { int n; int f=0; //sddssd cin>>n; for(int i=1;i<=n;i++) { scanf("%s%d%d%s%s%d",&xs[i].name,&xs[i].qm,&xs[i].bj,&xs[i].gb,&xs[i].xb,&xs[i].lw); if(xs[i].qm>80&&xs[i].lw>=1) { xs[i].money+=8000; } if(xs[i].qm>85&&xs[i].bj>80) { xs[i].money+=4000; } if(xs[i].qm>90) { xs[i].money+=2000; } if(xs[i].qm>85&&xs[i].xb=='Y') { xs[i].money+=1000; } if(xs[i].qm>80&&xs[i].gb=='Y') { xs[i].money+=850; } allmoney+=xs[i].money; if(xs[i].money>maxmoney) { maxmoney=xs[i].money; f=i; } } printf("%c\n%d\n%d",xs[f].name,maxmoney, allmoney); return 0; } ``` 现在可以输出后两项了,可是名字还是不能输出
by 귀엽다 @ 2018-07-10 15:47:11


``` #include<iostream> #include<cstdio> using namespace std; int allmoney=0,maxmoney=0; struct xs { int qm,bj,lw,money=0; //期末平均 班级平均 论文数 单人奖学金 char name[250],gb,xb; //学生干部 西部省份 }xs[105]; int main() { int n; int f=0; //sddssd cin>>n; for(int i=1;i<=n;i++) { scanf("%s%d%d%s%s%d",&xs[i].name,&xs[i].qm,&xs[i].bj,&xs[i].gb,&xs[i].xb,&xs[i].lw); if(xs[i].qm>80&&xs[i].lw>=1) { xs[i].money+=8000; } if(xs[i].qm>85&&xs[i].bj>80) { xs[i].money+=4000; } if(xs[i].qm>90) { xs[i].money+=2000; } if(xs[i].qm>85&&xs[i].xb=='Y') { xs[i].money+=1000; } if(xs[i].qm>80&&xs[i].gb=='Y') { xs[i].money+=850; } allmoney+=xs[i].money; if(xs[i].money>maxmoney) { maxmoney=xs[i].money; f=i; } } printf("%s\n%d\n%d",xs[f].name,maxmoney, allmoney); return 0; } ``` 改完了,样例也过了,但是30分,随便帮dalao下载了一组测试数据: 测试点#2输入: ``` 100 KSSHsCEhNHXIMxnKjszE 93 98 N Y 0 KRXBnwAzDGjpfJgRpKt 95 90 Y Y 0 JBOyaqxicVGB 96 84 N Y 0 HolSWzxphdbM 99 80 Y Y 0 YzYKojgqgraUpqNyJ 95 90 N N 0 LgX 97 94 Y Y 0 HCRuZbWsSDgkOEoj 80 90 N Y 0 S 85 89 N Y 10 AdLhdCBxwmJXRm 78 97 Y N 0 QhgGp 85 87 Y N 0 ZFTdFawbiwDG 87 80 N Y 0 JaOThlpkrRkejXMMXgbu 95 80 Y Y 0 NiAntWp 85 91 Y N 0 Te 81 81 Y Y 0 TrFXiYBMzJ 92 87 N N 0 MlhsUsruSKdrAGkUerE 97 92 Y Y 0 NWpjgxcNegmyEGHlPTP 88 94 N N 5 VCXJjomOzywFZBVkDR 87 75 Y N 0 PxZYNvXNdbUtBIp 82 75 N Y 0 TsJkMpF 85 99 N Y 0 BwaIeOrqdatudl 85 80 N N 0 IB 95 90 Y N 0 HmPorGeOs 98 85 Y N 0 DgRHzC 87 82 Y N 0 WkRmkErigra 90 75 Y N 0 MZdQ 85 78 N N 0 NIrWcjt 81 95 Y N 0 MQBfcr 85 80 Y N 0 IXrLPdJhEekBRgsbkqI 95 85 Y Y 6 MWAd 89 75 Y N 0 BVYqUBdV 76 79 Y Y 0 NhmSyMnvHxUkjye 79 90 Y N 0 NUPyQqEhklWtWxeIz 80 95 Y N 0 NsQbL 95 86 N N 0 KEKFcpbDWQXUsQTXvFbs 95 95 N N 0 ZzjJWy 90 80 N Y 3 TOWFblEWAuVgAxdHt 95 100 N N 0 HRYFlarRQhe 100 90 N N 0 SGUCaHJVg 95 87 Y Y 0 CsNEZwUWERVFFxLsdyK 85 94 N N 0 PZhrRpBMpm 80 85 Y N 0 LsyePjMaoonOscyyUQY 82 98 Y Y 0 SkPGcYDnYyIp 95 90 N N 0 OaV 90 90 Y N 0 W 75 90 Y N 0 TJjZwq 85 75 Y Y 0 PVFVBEocVjjpg 90 88 N N 0 HMJecx 85 100 N Y 0 PvgXSkNZQNcfJrgTzgm 90 75 N Y 0 VnVXCwwJdbrusXG 89 95 Y N 0 BNziq 95 76 Y Y 0 MNjzTqMCtx 85 95 N N 0 UihwjdZaUXWuMsytRtN 90 88 Y N 7 HdXkkOHRQoG 93 85 Y N 0 DHDAFValkXKFYjznnn 75 100 N N 0 JskIgwiNH 85 85 Y N 0 SeYSBFuVQaEUXwf 75 80 N Y 0 XfGMOTDT 82 75 Y Y 0 GnGatTgZBPgj 90 90 N N 0 K 85 80 Y Y 0 KRJVphYKwQTOMc 95 85 N N 0 DFWtLGoFLXHptkI 75 92 N Y 0 CayHZQXpTpyFPSuJz 87 76 N Y 0 RRlRboFqAgLvzrJ 89 75 N Y 4 DbWHykSi 85 84 N Y 0 WQHneRqIh 90 82 Y N 0 BhGejmW 90 93 Y N 0 AFEEic 95 80 Y N 0 MXhBgPj 96 98 Y Y 0 WJsSWOCR 77 85 Y Y 0 A 79 82 N N 0 Wy 95 85 Y Y 0 OtgBaCKAVmMEFxPVcbE 84 75 N Y 0 DnBaraTLVBkPJJj 85 75 Y N 0 Kzir 84 75 Y Y 0 PxCMvWOdyZcRW 90 76 N N 0 ZcztKxXsrhqSDuxBeN 80 84 N Y 0 EesxZKSACX 80 87 N N 0 CvCT 75 85 N N 0 UwrgH 76 80 Y N 0 VwcGoYzhhVFWGyFzjdn 78 90 N N 0 KQ 75 100 N Y 0 MHJszTi 95 79 Y Y 0 BPJXuWxsGGNYz 87 92 Y Y 5 XWWpW 96 92 Y Y 6 GKIdgeGTHWd 80 77 Y Y 0 MeGS 88 75 N N 0 SblEZfNCkGAkRSrzFADB 90 88 N Y 0 BGLYzCxFVARuGu 87 75 N Y 0 WMQkzgUafGBnqiuBgRpn 77 75 N Y 0 LIWndzmjDozIMTu 80 94 N Y 0 LsPuNFjIzCcppis 80 80 Y N 0 JgycuqAJHELopIoZm 87 85 Y N 0 UJmFKI 75 90 N N 0 RdvGLr 95 85 Y Y 0 WVsTKZHjDEc 90 85 N N 0 VvtFQcwAErUIru 85 87 N Y 0 JKTcYDOhBIJdTBG 94 85 Y N 0 VJqtvLWNUdTEypjOCB 85 94 N Y 0 ET 80 80 N N 2 ``` 测试点#2输出: ``` IXrLPdJhEekBRgsbkqI 15850 315050 ```
by 귀엽다 @ 2018-07-10 15:55:16


谢谢!
by 林沐秋 @ 2018-07-10 16:42:52


```cpp #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<ctime> #include<cmath> #include<algorithm> #include<map> #include<set> #include<list> #include<string> #include<queue> #include<stack> //4 //YaoLin 87 82 Y N 0 //ChenRuiyi 88 78 N Y 1 //LiXin 92 88 N N 0 //ZhangQin 83 87 Y N 1 //从左向右依次是姓名, //期末平均成绩, //班级评议成绩, //是否是学生干部, //是否是西部省份学生, //以及发表的论文数。 using namespace std; struct node{ string name; char gb,west; int score,scorec,lunwen; int sum = 0,num; }e[110]; bool cm(node a,node b) { if(a.sum == b.sum) return a.num < b.num; return a.sum > b.sum; } int main() { int n,t = 0,max = -2017; cin>>n; for(int i = 1;i <= n;i++) { cin>>e[i].name>>e[i].score>>e[i].scorec>>e[i].gb>>e[i].west>>e[i].lunwen; e[i].num = i; } for(int i = 1;i <= n;i++) { if(e[i].score > 80&&e[i].lunwen >= 1) e[i].sum += 8000; if(e[i].score > 85&&e[i].scorec > 80) e[i].sum += 4000; if(e[i].score > 90) e[i].sum += 2000; if(e[i].score > 85&&e[i].west == 'Y') e[i].sum += 1000; if(e[i].scorec > 80&&e[i].gb == 'Y') e[i].sum += 850; t += e[i].sum; } sort(e + 1,e + 1 + n,cm); cout<<e[1].name<<endl<<e[1].sum<<endl; cout<<t<<endl; return 0; } ```
by 加载错误 @ 2018-07-11 16:25:36


|