讨论 / 为什么不对?
jimmyandhxm 2008-11-09 19:57:00
点我顶贴 收藏 删除
查看主题 Show Topic

主题题目:为什么不对? [悬赏:5分]

发布者:jimmyandhxm

状态: Unaccepted

测评机: 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;

}

查看更多回复
提交回复