15.奖学金
来源:互联网 发布:数位化与大数据 编辑:程序博客网 时间:2024/04/30 15:16
#define N 20
typedef struct money
{
char name[N];
int averagegrade;
int naturegrade;
char position;
char weststudent;
int thesis;
}money;
#include <stdio.h>
#include <stdlib.h>
int banji(int narturegrade,char position)
{
return (narturegrade > 80 && position == 'Y')?850:0;
}
int wusi(int averagegrade,char west){
return(averagegrade > 85 && west == 'Y')?1000:0;
}
int greatgrade(int averagegrade)
{
return(averagegrade > 90)?2000:0;
}
int _wusi(int averagegrade,int narturegrade)
{
return (averagegrade > 85 && narturegrade > 80)?4000:0;
}
int yuanshi(int averagegrade,int thesis)
{
return (averagegrade > 80 && thesis > 0)?8000:0;
}
int addmoney(money *situation){
return banji( situation->naturegrade, situation->position)+
wusi( situation->averagegrade, situation->weststudent)+
greatgrade( situation->averagegrade)+
_wusi(situation->averagegrade, situation->naturegrade)+
yuanshi(situation->averagegrade, situation->thesis);
}
int main()
{
money *situation;
int n;
int time;
int total = 0;
int max = 0,m;
int i = 0;
int mark = 0;
scanf("%d",&time);
scanf("%*[^[\n]]");
scanf("%*c");
while (time--)
{
scanf("%d",&n);
scanf("%*[^[\n]]");
scanf("%*c");
situation=(money *)malloc(sizeof(money)*n);
while (i<n)
{
scanf("%s",situation[i].name);
scanf("%d %d %c %c %d",
&situation[i].averagegrade,
&situation[i].naturegrade,
&situation[i].position,
&situation[i].weststudent,
&situation[i].thesis);
scanf("%*[^\n]");
scanf("%*c");
m=addmoney(&situation[i++]);
mark= m>max? i-1:mark;
max = m>max? m:max;
total += m;
}
puts(situation[mark].name);
printf("%d\n",
addmoney(&situation[mark]));
printf("%d\n",total);
free(situation);
}
return 0;
}
0 0