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
原创粉丝点击