• Gym 100712A - Who Is The Winner


    原题见:

    题目要求:两队比赛解决问题并记罚时;解决问题数多则为胜出,解决问题数相同时,惩罚时间小为胜!

    代码如下:

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 #define MAX 105
     5 //两队比赛解决问题并记罚时;s为解决问题数,p为惩罚时间
     6 //s多则为胜出,s相同时,p小为胜! 
     7 using namespace std;
     8 struct team
     9 {
    10     char name[25];
    11     int s,p;
    12 };
    13 
    14 int cmp(team a,team b)
    15 {
    16     return a.s>b.s||a.s==b.s&&a.p<b.p;
    17 }
    18 
    19 int main()
    20 {
    21     team a[MAX];
    22     int i,t,n;;
    23     scanf("%d",&t);
    24     while(t--)
    25     {
    26         scanf("%d",&n);
    27         memset(a,0,sizeof(a));
    28         for(i=1; i<=n ;i++)
    29         {
    30             getchar();
    31             scanf("%s%d%d",a[i].name,&a[i].s,&a[i].p);        
    32         }
    33         sort(a+1,a+1+n,cmp);
    34         printf("%s
    ",a[1].name);
    35     }
    36     return 0; 
    37 }
           memset(起点,0或-1,sizeof());

           其中的memset函数作用是初始化第一个指针变量的元素为第二个数值(通常为0或-1);

           sort函数:1、#include <algorithm>下有一个直接的sort(begin,end)   注意:这是默认是升序排列

                         2、想降序的话要自己写一个比较函数——cmp函数(即compare 比较),然后调用sort(begin,end,compare)

     C语言代码如下:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #define MAX 105
     4 //两队比赛解决问题并记罚时;s为解决问题数,p为惩罚时间
     5 //s多则为胜出,s相同时,p小为胜! 
     6 
     7 struct team
     8 {
     9     char name[25];
    10     int s,p;
    11 };
    12 
    13 int main()
    14 {
    15     team a[MAX];
    16     int i,t,n;
    17     int max=0,maxs=0,maxp=10000; 
    18     scanf("%d",&t);
    19     while(t--)
    20     {
    21         scanf("%d",&n);
    22         max=0;maxs=0;maxp=10000;
    23         for(i=1; i<=n ;i++)
    24         {
    25             getchar();
    26             scanf("%s%d%d",a[i].name,&a[i].s,&a[i].p);
    27             if(a[i].s>maxs)
    28             {
    29                 maxs=a[i].s;
    30                 max=i;
    31                 maxp=a[i].p;
    32             }
    33             else if(a[i].s==maxs)
    34             {
    35                 if(a[i].p<maxp)
    36                    {
    37                     maxp=a[i].p;
    38                     max=i;
    39                 }
    40             }
    41         }
    42         printf("%s
    ",a[max].name);
    43     }
    44     return 0; 
    45 }

             注意排序!

  • 相关阅读:
    工业互联网网络安全渗透测试技术研究
    ios加固,ios代码混淆,ios代码混淆工具, iOS源码混淆使用说明详解
    Java代码加密,Java加密方式,Java加密使用说明
    移动App安全等级保护建议
    Android APP安全问题应对办法的探讨
    工业互联网环境下的工业控制系统安全防护
    保护IoT设备安全的5种方法
    移动App安全等级保护测评防护要点
    Windows下给IDApro 安装yara-python 和findcrypt
    gradle-下载地址
  • 原文地址:https://www.cnblogs.com/ivangin/p/5191411.html
Copyright © 2020-2023  润新知