测评机: Xeost[5]
得分: 30分
提交日期: 2008-11-10 11:53:00
有效耗时: 141毫秒
测试结果1: 通过本测试点|有效耗时47:ms
测试结果2: 测试结果错误.错误结果为:IXrLPdJhEekBRgsbkqI
15850
321850
正确结果应为:IXrLPdJhEekBRgsbkqI
15850
315050
测试结果3: 测试结果错误.错误结果为:LyFr
15850
385000
正确结果应为:LyFr
15850
376500
测试结果4: 测试结果错误.错误结果为:HHeXOMfgB
15000
312050
正确结果应为:HHeXOMfgB
15000
311200
测试结果5: 通过本测试点|有效耗时47:ms
测试结果6: 测试结果错误.错误结果为:DGMqW
15000
348150
正确结果应为:DGMqW
15000
350700
测试结果7: 测试结果错误.错误结果为:F
15000
321250
正确结果应为:F
15000
324650
测试结果8: 通过本测试点|有效耗时47:ms
测试结果9: 测试结果错误.错误结果为:RaC
12000
247900
正确结果应为:RaC
12000
249600
测试结果10: 测试结果错误.错误结果为:WtEEnIDxjkneYioJpF
15850
349350
正确结果应为:WtEEnIDxjkneYioJpF
15850
351900
代码:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
struct student
{
char name[21];
int g1,g2;
int lu,f1,f2; // lu指论文的多少,f1 指是否是学生干部,f2 指是否是西部学生
int m; // m 指获奖金的多少
};
int n;
int main()
{
int i,max=0,sum=0;
char t1,t2;
struct student *p,*q;
scanf("%d",&n);
q=NULL;
for(i=0;i<n;i++)
{
p=(struct student *)malloc(sizeof(struct student));
scanf("%s%d%d %c %c%d",p->name,&p->g1,&p->g2,&t1,&t2,&p->lu);
p->f1=((t1==’Y’)?1:0);
p->f2=((t2==’Y’)?1:0);
p->m=0;
if(p->g1>80 && p->lu>=1)
p->m+=8000;
if(p->g1>85 && p->g2>80)
p->m+=4000;
if(p->g1>90)
p->m+=2000;
if(p->g1>85 && p->f2==1)
p->m+=1000;
if(p->g1>80 && p->f1==1)
p->m+=850;
sum+=p->m;
if(p->m>max)
{
max=p->m;
if(q!=NULL)
free(q);
q=p;
}
else free(p);
}
printf("%s\n%d\n%d",q->name,q->m,sum);
return 0;
}