zoukankan      html  css  js  c++  java
  • HDU 2093考试排名(模拟题)

          半年前刚入ACM,看到这道题就傻眼,今天做,发现其实就是一道模拟题而已。完全就是那么直的思路。还是,很锻炼你的语言掌握程度哦。细节很多,大的方面不过就是开一个结构体,然后进行结构体排序罢了(结构体中排了三次序)。

          思路神马的没啥好讲。只是最后的输出还是有点要注意的。输出的名字是左对齐,并且域宽为10,还有题数为2个域宽,耗时为4个域宽。并且两两之间有一个空格。这点我一开始没有注意到。

          还有,其中的学生数是没有要求限制的,所以用EOF结束,在调试的时候用两次crtl+z就可以了。

    附:题目要求的输出。

    Output
    将这些学生的考试现状,输出一个实时排名。实时排名显然先按AC题数的多少排,多的在前,再按时间分的多少排,少的在前,如果凑巧前两者都相等,则按名字的字典序排,小的在前。每个学生占一行,输出名字(10个字符宽),做出的题数(2个字符宽,右对齐)和时间分(4个字符宽,右对齐)。名字、题数和时间分相互之间有一个空格。
    #include<iostream> 
    #include<algorithm> 
    using namespace std; 
     
    struct people 

     char name[101]; 
     int score[15]; 
     int rnum; 
     int ctime; 
    }p[1005]; 
     
     
    bool cmp(struct people a,struct people b)//结构体排序 

     if(a.rnum>b.rnum) 
      return true
     else if(a.rnum==b.rnum) 
     { 
      if(a.ctime<b.ctime) 
       return true
      else if(a.ctime==b.ctime) 
      { 
       if(strcmp(a.name,b.name)<0
        return true
       else 
        return false
      } 
      else 
       return false
     } 
     else 
      return false

     
    int main(void

     int n,m,temp,c,i; 
     char ch; 
     scanf("%d%d",&n,&m); 
     c=1
     while(scanf("%s",p[c].name)!=EOF) 
     { 
      p[c].rnum=0
      p[c].ctime=0
      for(i=1;i<=n;i++) 
      { 
       scanf("%d",&p[c].score[i]); 
       if(p[c].score[i]>0
        p[c].rnum++;                       //这里的p[i].score[i]是算这个人这一道题中所花的时间 
       if(scanf("%c",&ch)&&ch=='(')//注意,这一步判断有没有小括号。有的话,就将罚的时间一起算进p[i].score[i]中 
       {                                            
        scanf("%d",&temp); 
        scanf("%c",&ch); 
        p[c].score[i]+=temp*m; 
       } 
       if(p[c].score[i]>0
        p[c].ctime+=p[c].score[i];//用p[i].ctime汇总,算出一个人的总时间 
      } 
      c++; 
     // cout<<c<<endl; 
     } 
     sort(p+1,p+c,cmp);//sort排序 
     
     for(i=1;i<c;i++) 
      printf("%-10s %2d %4d\n",p[i].name,p[i].rnum,p[i].ctime);//名字左对齐用"-1" 
     return 0;  

     
     
  • 相关阅读:
    Hibernate--Day01
    Java语言基础之数组
    Java语言基础之方法的设计
    Jmeter-文件目录
    Jmeter-简介及安装
    测试基础-测试策略与类型
    测试基础-软件测试计划
    测试基础-软件测试流程与测试模型
    测试基础-软件测试的环境
    测试基础-软件测试目的与对象
  • 原文地址:https://www.cnblogs.com/cchun/p/2520113.html
Copyright © 2011-2022 走看看