NYOJ 60 谁获得了最高奖学金

#include<stdio.h>
#include<string.h>
int main()
{
  int test,i,geshu,k,a[1100];
  scanf("%d\n",&test);
  while(test--)
  {
    int flag=0,sum=0;
  struct
  {
    char name[20];
    int qimo;
    int banyi;
    char ganbu;
    char xibu;
    int lunwen;
    int jiangjin;
}score[1100];
    scanf("%d",&geshu);
    for(i=0;i<geshu;i++)
      score[i].jiangjin=0;
    /*for(i=0;i<geshu;i++)
    {
      scanf("%s%d%d%c%c%d",score[i].name,&score[i].qimo,&score[i].banyi,&score[i].ganbu,&score[i].xibu,&score[i].lunwen);
    }*/
    for(i=0;i<geshu;i++)
    {
      scanf("%s %d %d %c %c %d",score[i].name,&score[i].qimo,&score[i].banyi,&score[i].ganbu,&score[i].xibu,&score[i].lunwen);
    }
    for(i=0;i<geshu;i++)
    {
      if(score[i].qimo>80&&score[i].lunwen>=1)
        score[i].jiangjin+=8000;
      if(score[i].qimo>85&&score[i].banyi>80)
        score[i].jiangjin+=4000;
      if(score[i].qimo>90)
        score[i].jiangjin+=2000;
      if(score[i].qimo>85&&score[i].xibu==‘Y‘)
        score[i].jiangjin+=1000;
      if(score[i].banyi>80&&score[i].ganbu==‘Y‘)
        score[i].jiangjin+=850;
    }
    for(i=0;i<geshu;i++)
    {
      sum+=score[i].jiangjin;
      a[i]=score[i].jiangjin;
    }
    for(i=0;i<geshu;i++)
    for(k=i+1;k<geshu;k++)
    if(score[i].jiangjin<score[k].jiangjin)
    {
      int temp=score[i].jiangjin;
      score[i].jiangjin=score[k].jiangjin;
      score[k].jiangjin=temp;
    }
    for(i=0;i<geshu;i++)
    if(score[0].jiangjin==a[i])
    {
      flag=i;
      break;
    }
    printf("%s %d %d\n",score[flag].name,a[flag],sum);
  }
}

时间: 2024-08-07 21:17:58

NYOJ 60 谁获得了最高奖学金的相关文章

NYOJ 60 谁获得了最高奖学金【结构体】

/* 题目大意:求解获得最高奖学金和总的奖学金 解题思路:结构体将他们输入,按题目要求求解就可以了 难点详解:输入时要注意有空格,去除空格(因为有字符输入,要用getchar去除字符) 关键点:结构体的使用 解题人:lingnichong 解题时间:2014-08-31    00:32 解题体会:一开始输入老错,调试了很长时间才改过来 */ 谁获得了最高奖学金 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述     某校的惯例是在每学期的期末考试之后发放奖学金.发

NYOJ题目60 谁获得了最高奖学金

描述    某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得: 2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得: 3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得: 4) 西部奖学金,每人1000元,期末平均成绩高于85分

60 谁获得了最高奖学金

描述    某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得: 2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得: 3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得: 4) 西部奖学金,每人1000元,期末平均成绩高于85分

南阳60(谁获得了最高奖学金)

谁获得了最高奖学金 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述     某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得: 2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得: 3) 成绩优秀奖,每人2000元,期末平均成绩高于9

NYOJ 832 合并游戏

合并游戏 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 大家都知道Yougth除了热爱编程之外,他还有一个爱好就是喜欢玩.某天在河边玩耍的时候,他发现了一种神奇的石子,当把两个石子放在一起的时候,后一个石子会消失,而且会蹦出一定数量的金币,这可乐坏了Yougth,但是他想得到最多的金币,他该怎么做? 输入 首先一行,一个n(1<=n<=10),表示有n个石子.接下来n*n的一个矩阵,Aij表示第i个和第j个合并蹦出的金币值(小于10000,注意合并后j会消失).

NYOJ 1069 生活的难题

 生活的难题 时间限制:1500 ms  |  内存限制:240000 KB 难度:3 描述 生活又调皮了,整天不好好的集训,还偷偷的看电影!今天终于被逮到了.于是万恶的BOSS们就出了一个题来为难为难他.题目是这样的,输入一个整型数组,数组里除了两个数出现一次之外,其它所有数字出现的次数都是2次,求这两个数字的乘积. 输入 第一行输入一个整数T(T<=5),表示有T组测试数据. 每组数据占两行,第一行为一个数N(2<=N<=1000),表示有N个数:第二行有N个数,1<=a[

nyoj 1078 汉诺塔(四)[二分图 || 规律 || 暴力 || 贪心]

题目:nyoj 1078 汉诺塔(四) 分析:做这个题目的时候是在图论的题目里面看到的,到时读了题目推了一下,发现好像有点规律,试了一下果然过了. 后来看了一下数据,才50,那么试了一下模拟,也过了. 好像zoj有一道题目卡模拟,模拟的时候必须贪心一下才能过 这道题出题人的意图在于考大家的:二分图最小路径覆盖. 把每一个球看做一个点,然后如果两个和为平方数的话就给这两个点之间连接一条边,然后用一个特殊的匹配算法,类似于匈牙利算法,但是每次找匹配的时候加入一条边上连接的有匹配的话就不能匹配,最后求

NYOJ 469 擅长排列的小明 II

擅长排列的小明 II 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 小明十分聪明,而且十分擅长排列计算. 有一天小明心血来潮想考考你,他给了你一个正整数n,序列1,2,3,4,5......n满足以下情况的排列: 1.第一个数必须是1 2.相邻两个数之差不大于2 你的任务是给出排列的种数. 输入 多组数据.每组数据中输入一个正整数n(n<=55). 输出 输出种数. 样例输入 4 样例输出 4 来源 Ural 上传者 李文鑫 解题:俺找规律才找出来的,开始写了个暴

nyoj 115------城市平乱( dijkstra // bellman )

城市平乱 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M. 现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱. 现在已知在任意两个城市之间的路行军所需的时间,你作为南将军麾下最厉害的程序员,请你编写一个程序来告诉南将军第一个分队到达叛乱城市所需的时间. 注意,两个城市之间可能不只一条路.