其实很水
链接:
注意:
看好信息,不要看漏或看错因为信息很密集
AC代码:
1 #include<bits/stdc++.h>//头文件 2 using namespace std;//开辟名称空间 3 struct st//结构体 4 { 5 string na; 6 int sc1,sc2,jxj,lws; 7 char gb,xb,bb; 8 };//分号注意 9 //以上是定义结构体=========== 10 bool cmp(st x,st y) 11 { 12 if(x.jxj>y.jxj || x.jxj==y.jxj && x.bb<y.bb)return true; 13 else return false; 14 } 15 //以上是定义结构体排序规则======= 16 st xs[105];//定义结构数组 17 int N,zjxj;//普通定义 18 int main()//开始 19 { 20 cin>>N;//输入 21 for(int i=0;i<N;i++) 22 { 23 cin>>xs[i].na>>xs[i].sc1>>xs[i].sc2>>xs[i].gb>>xs[i].xb>>xs[i].lws;//输入所以规则 24 xs[i].bb=i;//装入相应编号 25 } 26 for(int i=0;i<N;i++) 27 { 28 //以下为判断============== 29 if(xs[i].sc1>80 && xs[i].lws>=1) xs[i].jxj+=8000; 30 if(xs[i].sc1>85 && xs[i].sc2>80) xs[i].jxj+=4000; 31 if(xs[i].sc1>90) xs[i].jxj+=2000; 32 if(xs[i].sc1>85 && xs[i].xb=='Y') xs[i].jxj+=1000; 33 if(xs[i].sc2>80 && xs[i].gb=='Y') xs[i].jxj+=850; 34 //以上为判断============== 35 zjxj+=xs[i].jxj;//算出最终奖学金,累加 36 } 37 sort(xs,xs+N,cmp);//排序奖学金数量,调用规则 38 39 cout<<xs[0].na<<endl;//输出最大名字 40 cout<<xs[0].jxj<<endl;//输出最大奖学金 41 cout<<zjxj;//输出总奖学金 42 43 return 0;//结束 44 }