HDU 1236 排名

来源:互联网 发布:水晶球软件 编辑:程序博客网 时间:2024/06/04 18:38

用一个结构体,里面表示学号,做题数,题号,总分。

先排好成绩,直接用一个结构体进行两个元素的交换即可

注意!如果成绩相同,则按学号升序排列。

继续排序,不过用strcmp函数比较学号即可



#include<stdio.h>#include<string.h>struct student{  char name[25];  int m;  int number[15];  int sum;} Student[1005], Temp;int N, M, G, value[15];int main(void){  int goodStudent[15];  while (scanf("%d", &N) != EOF && N) {    scanf("%d %d", &M, &G);    for (int i = 0; i < M; i++) {      scanf("%d", &value[i]);    }    for (int i = 0; i < N; i++) {      scanf("%s %d", Student[i].name, &Student[i].m);      Student[i].sum = 0;      for (int j = 0; j < Student[i].m; j++) {        scanf("%d", &Student[i].number[j]);        Student[i].sum += value[Student[i].number[j]-1];      }    }    for (int i = 0; i < N-1; i++) {      int min = Student[i].sum;      int minPos = i;      for (int j = i+1; j < N; j++) {        if (Student[j].sum < min) {          min = Student[j].sum;          minPos = j;        }      }      Temp = Student[i];      Student[i] = Student[minPos];      Student[minPos] = Temp;    }    for (int i = 0; i < N-1; i++) {      for (int j = i+1; j < N; j++) {        if (Student[i].sum == Student[j].sum && strcmp(Student[j].name, Student[i].name) == 1) {          Temp = Student[i];          Student[i] = Student[j];          Student[j] = Temp;        }      }    }    int count = 0, k = 0;    for (int i = 0; i < N; i++) {      if (Student[i].sum >= G) {        goodStudent[k++] = i;        count++;      }    }    printf("%d\n", count);        for (int i = N-1; i >= 0; i--) {      if (Student[i].sum >= G) {        printf("%s %d\n", Student[i].name, Student[i].sum);      }    }  }  return 0;}


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 南拳北腿活阎王 南拳北腿什么意思 南拳和北腿是什么歌 南拳北腿20集 北腿 南歌北舞作品 北舞考级 北舞 北舞渡胡辣汤 南歌北舞 北舞渡 北舞附中 北舞培训 北舞招生要求 北舞招生简章 上北舞附中得花多少钱 北舞渡胡辣汤培训 南鸢北舞作品 北舞附中2018年多少钱能进 北舞附中2019招生简章 北舞教师资格证 北舞附中好考吗 北舞少儿芭蕾 名门冠宠 南鸢北舞 蓝溪陆彦廷南歌北舞 你若是归途南歌北舞 你若是归途 南歌北舞 蓝溪陆彦廷 南歌北舞 北航 北航分数线 北航大学 北航邮箱 北航图书馆 北航计算机 北航研究生 北航财务处 北航财务 北航研招网 北航自动化 北航教务 北航mba