hdoj 1084 What Is Your Grade?(sort函数按规则排序结构体数组)
来源:互联网 发布:windows hello好用吗 编辑:程序博客网 时间:2024/05/30 04:11
思路:对输入的学生的解决问题数和用时进行排序;先排解觉问题的数目,再排用时;
代码如下:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <algorithm>using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */struct node{int slove;long time;int order;int mark;}s[110];bool cmp1(node a,node b){return a.order<b.order;}bool cmp2(node a,node b){if(a.slove!=b.slove){return a.slove>b.slove;}else{return a.time<b.time;}}int main(int argc, char *argv[]) { int t; int k; int h,m,ss; int i; int sum1,sum2,sum3,sum4; int p1,p2,p3,p4; int x; x=0; while(scanf("%d",&t)!=EOF) { if(t<0) break; k=0; sum1=sum2=sum3=sum4=0;//记录有多少个 同样成绩的人 p1=p2=p3=p4=0;//记录同样成绩的人已经有多少个 while(t--) { scanf("%d %d:%d:%d",&s[k].slove,&h,&m,&ss); s[k].time=h*3600+m*60+ss; s[k].order=k; k++; }sort(s,s+k,cmp2);//按先解决的问题 数目,再解决的时间长短,进行排序; for(i=0;i<k;i++)//找相同成绩的人数 {if(s[i].slove==1)sum1++;if(s[i].slove==2)sum2++;if(s[i].slove==3)sum3++;if(s[i].slove==4)sum4++;}for(i=0;i<k;i++)//为每个人赋成绩; {switch (s[i].slove){case 0:s[i].mark=50;break;case 1:if(p1<sum1/2)s[i].mark=65;elses[i].mark=60;p1++;break;case 2:if(p2<sum2/2)s[i].mark=75;elses[i].mark=70;p2++;break;case 3:if(p3<sum3/2)s[i].mark=85;elses[i].mark=80;p3++;break;case 4:if(p4<sum4/2)s[i].mark=95;elses[i].mark=90;p4++;break;case 5:s[i].mark=100;break;}}sort(s,s+k,cmp1);for(i=0;i<k;i++)printf("%d\n",s[i].mark);printf("\n");} return 0;}
阅读全文
0 0
- hdoj 1084 What Is Your Grade?(sort函数按规则排序结构体数组)
- hdoj 1872 What Is Your Grade? 【结构体排序】
- What Is Your Grade?(结构体+(sort))
- What Is Your Grade?(结构体+(sort))hd 1084
- HDU 问题1084 What Is Your Grade?(结构体+sort)
- What Is Your Grade? (sort)
- 【结构体排序】HDU1084 What Is Your Grade?
- hdoj 1084 What Is Your Grade?
- hdoj 1084 What Is Your Grade?
- hdoj 1084 What Is Your Grade?
- HDOJ 1084 What Is Your Grade?
- HDOJ 1084 What Is Your Grade?
- HDOJ 1084 What Is Your Grade?
- HDOJ HDU 1084 What Is Your Grade?
- HDU 1084 What Is Your Grade?(排序)
- hdoj1084What Is Your Grade?(结构体+sort)
- hdoj1084What Is Your Grade?(sort+结构体)
- What Is Your Grade?(1084)
- 2018第13届捷克(布拉格)国际安防展
- JavaScript中的整数和浮点数
- 初识arm
- 普及练习场 贪心 合并果子
- 【Spring+SpringMVC+MyBatis深入学习及搭建】05.动态sql
- hdoj 1084 What Is Your Grade?(sort函数按规则排序结构体数组)
- 文章标题
- servlet+mvc实现分页显示列表页
- 用百度地图的API画多边形,并在多边形中加入文本标注
- 前端案例--纯css动画transform视距3D旋转
- js 页面history.back()返回上一页,ios 不重新加载ready的解决办法
- Unity API——Application类的详解(二):数据文件路径
- C语言中调用LUA(1)
- leetcode-698. Partition to K Equal Sum Subsets