hdu 2093
ps:这题的输入我看到括号以为要用字符串,谁知道看了大神的才知道可以这样"scanf("%d(%d)",&a,&b);" 觉得好神奇.. 然后知道了scanf()返回的是接收的个数,如果只有一个就会返回1,2个返回2,这样就可以很好的解决这个问题了。。。
还有一个很大很大的收获。就是qsort里面的cmp,可以自己编写,编写的格式:
int cmp(const void *a,const void *b){
}
里面会用到指针,所以一开始的形参会用const void *a和const void *b,要是你要比较的是其他类型的,必须改变他.比如整型, int *q=(int *)a.
然后就是返回,返回值是一个int型的数,如果大于0,就认为a>b,小于0,就认为a<b. 如果return a-b ,就会得到升序,return b-a就会得到降序.
贴上代码;
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int cmp(const void *a,const void *b);
typedef struct people{
char name[];
int time;
int num;
}people;
people peo1[];
int main(){
int n,m,num,time,num1,i,a,b;
char name[];
num1=;
scanf("%d%d",&n,&m);
while(~scanf("%s",&name)){
num=time=;
for(i=;i<n;i++){
if(scanf("%d(%d)",&a,&b)==){
num++;
time+=(a+b*m);
}
else{
if(a>){
num++;
time+=a;
}
} }
strcpy(peo1[num1].name,name);
peo1[num1].time=time;
peo1[num1].num=num;
num1++;
}
qsort(peo1,num1,sizeof(people),cmp);
for(i=;i<num1;i++){
printf("%-10s %2d %4d\n",peo1[i].name,peo1[i].num,peo1[i].time);
}
return ;
}
int cmp(const void *a,const void *b){
people *p = (people*)a,*q=(people *)b;
if(p->num!=q->num) return q->num-p->num;
if(p->time!=q->time) return p->time-q->time;
return strcmp(p->name,q->name);
}
hdu 2093的更多相关文章
- 题解报告:hdu 2093 考试排名
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2093 Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的 ...
- HDOJ(HDU) 2093 考试排名(Arrays.sort排序、类的应用)
Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错 ...
- HDU 2093 考试排名 模拟题
解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...
- HDU——2093考试排名(string类及其函数的运用以及istringstream)
考试排名 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu 2093 成绩排名
思路: 没啥思路,就是定义结构体,跟题目,走,当时没想到对那个括号的处理,后面看了题解,才知道用个getchar直接判断 算是一个值得思考的点. 代码: #include<bits/stdc++ ...
- HDU——PKU题目分类
HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...
- [转] HDU 题目分类
转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...
- HDU ACM 题目分类
模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...
- 数位DP HDU - 2089 不要62
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
随机推荐
- eclipse编辑struts.xml 代码提示
先确定xml文件 window-preferences-查询catalog 点击add 关于这个Location 先找到你下载的struts压缩包 然后找到 解压这个jar包 你会得到一些dtd文件 ...
- ie11媒体查询以及其他hack
<!doctype html> <html> <head> <title>IE10/11 Media Query Test</title> ...
- 2016年江西理工大学C语言程序设计竞赛(初级组)
问题 A: 木棒根数 解法:把所有的情况保存下来,加一下就好 #include<bits/stdc++.h> using namespace std; map<char,int> ...
- 理解GRUB2工作原理及配置选项与方法
GRUB2是借鉴GRUB改写到更加安全强大到多系统引导程序,现在大部分较新的Linux发行版都是使用GRUB2作为引导程序的.GRUB2采用了模块化设计,使得GRUB2核心更加精炼,使用更加灵活,同时 ...
- powerdesinger中建立一个表后,出现Existence of index的警告
可以不检查 Existence of index 这项,也就没有这个警告错误了!意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用的话对执行没有影响~ 转载:http://bl ...
- table插件实现
选择.取消.全选.全部取消.获取行ids /** * Created by lizongqiong on 2016/1/8. */ var $ = require('jquery'); var tab ...
- Android Studio - HPROF文件查看和分析工具
Android Studio 翻译的官方文章 原文链接 当你在Android Studio中使用Android Monitor里的Memory Monitor工具监视内存使用情况时,可以把Java堆快 ...
- 与Status Bar和Navigation Bar相关的一些东西
Android Navigation Bar Status Bar 与StatusBar和NavigationBar相关的东西有两种,一是控制它们的显示与隐藏,二是控制它们的透明与否及背景. 在2 ...
- 腾讯云TDSQL审计原理揭秘
版权声明:本文由孙勇福原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/244 来源:腾云阁 https://www.qclo ...
- windows docker安装方式的比较小结
稍微小结一下使用InstallDocker 和dockertoolbox的两种方式安装的docker(名称说明可能不妥,仅代表安装方式) InstallDocker 使用的是Microsoft Hy ...