水题=》练习CODING
/*
* RQNOJ-16 谁拿了最多的奖金
* mike-w
* 2011-8-31
* --------------------------
* 纯粹的联系coding
* 看来还要细心,大于等于号打成了大于号==||
* WA一次,因为我没料到同学的名字如此长==||
* 其实,真正的原因是,测试时我用文件重定向
* 提交的时候忘记关闭了 :(
* ONLINE JUDGE 竟然没看出我用freopen() ==||
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NAME_LEN 100
typedef struct _student
{
char name[NAME_LEN];
int score1; /* 期末平均成绩 */
int score2; /* 班级评议成绩 */
char monitor[5];
char west[5];
int post;
}student;
long calc(student* s)
{
long total=0;
if((s->score1>80) && (s->post>=1))
total+=8000;
if((s->score1>85) && (s->score2>80))
total+=4000;
if(s->score1>90)
total+=2000;
if((s->score1>85) && (s->west[0]=='Y'))
total+=1000;
if((s->score2>80) && (s->monitor[0]=='Y'))
total+=850;
return total;
}
int main(void)
{
int n;
long total=0,max=0,t;
char name[NAME_LEN];
student cur;
scanf("%d",&n);
while(n-->0)
{
scanf("%s%d%d%s%s%d",
cur.name,
&(cur.score1),
&(cur.score2),
cur.monitor,
cur.west,
&(cur.post)
);
/*
printf("%s %d %d %c %c %d\n",
cur.name,cur.score1,cur.score2,cur.monitor[0],cur.west[0],cur.post);
*/
if((t=calc(&cur))>max)
{
max=t;
strcpy(name,cur.name);
}
total+=t;
}
printf("%s\n%ld\n%ld\n",name,max,total);
return 0;
}