PAT1012
来源:互联网 发布:开处方软件 编辑:程序博客网 时间:2024/04/30 03:09
注意点:如果两个人的成绩相同,则排名并列
//pseudocode//对单个课程排序sort_course for i =0 to N temp = S[i]; while(temp.math.soccer>S[j].math.soccer) exchange S[i] and S[j];
#include<stdio.h>#include<string.h>int N;int M;struct Student{//A stand for soccer,and B stand for rank//for example A[0] = 98 and B[0] = 1char ID[6];int A[4];int B[4];int equal;};void initial_equal(Student *S){for(int i =0;i<N;i++){S[i].equal = 0;}}void sort_course(int course_number,Student *S){initial_equal(S);int co = course_number;Student temp;int j;for(int i =0;i<N;i++){j = i;temp = S[i];while((temp.A[co]>=S[j-1].A[co])&&j>0){if(temp.A[co] == S[j-1].A[co]) S[j-1].equal = 1;S[j] = S[j-1];j--;}S[j] = temp;}for(int i =0;i<N;i++){if(S[i].equal == 1) S[i].B[co] = S[i-1].B[co];else S[i].B[co] = i+1;}}void sort_student(Student *S){int i =0;for(i = 0;i<4;i++){sort_course(i,S);}}void out_bestRank(Student S){int flag;flag = 0;for(int i =1;i<4;i++){if(S.B[i]<S.B[flag]) flag = i;}printf("%d ",S.B[flag]);switch(flag){case 0:printf("A\n");break;case 1:printf("C\n");break;case 2:printf("M\n");break;case 3:printf("E\n");break;default:printf("error\n");}}int main(){scanf("%d%d",&N,&M);Student S[2000];for(int i =0;i<N;i++){scanf("%s%d%d%d",&S[i].ID,&S[i].A[1],&S[i].A[2],&S[i].A[3]);S[i].A[0] = (S[i].A[1]+S[i].A[2]+S[i].A[3])/3;}sort_student(S);char student_id[6];int j;for(int i = 0;i<M;i++){scanf("%s",&student_id);for( j =0;j<N;j++){if(strcmp(student_id,S[j].ID)==0){out_bestRank(S[j]);break;}}if(j==N)printf("N/A\n");}}
0 0
- pat1012
- PAT1012
- pat1012
- PAT1012
- PAT1012
- PAT1012
- PAT1012
- PAT1012
- PAT1012. The Best Rank
- PAT1012 The Best Rank
- PAT1012:数字分类
- pat1012 The Best Rank
- PAT1012数字分类 (20)
- PAT1012. 数字分类
- pat1012:数字分类
- Pat1012. 数字分类 (20)
- PAT1012. 数字分类 (20)
- PAT1012第二题
- zedboard 使用自制IP+HDMI显示
- Android开发中常用的工具类整理
- 南宁怎么治疗肛周脓肿
- 半监督学习
- 南宁长肛周脓肿怎么办
- PAT1012
- 南宁肛周脓肿吃什么药
- Linux下boost库的安装
- 随记2015-05-27
- 南宁肛周脓肿如何治疗
- 南宁初期肛周脓肿疼吗
- 九度oj 1521 二叉树的镜像
- HDFS读取文件步骤
- 南宁治疗肛周脓肿的药