zoukankan      html  css  js  c++  java
  • zzuli oj 1123 最佳校友

    题目描述 :
    北京校友会每年举办两次,所有校友都有校友编号,每次到会的校友都在签到簿上写下自己的编号和姓名,
    在校友会成立5周年的聚会上将颁发“最佳校友奖”,该奖项颁发给到会次数最多的校友。现在请你编写程
    序,找出这个奖项的得主。若有多个校友并列第一,则均可获奖。  
    输入
    输入若干个整数,表示签到簿上的校友编号,所有编号均为0~99的整数,以一个负数作为输入结束的标志。
    输出
    输出出现次数最多的编号。若获奖选手有多个,则按从小到大的顺序输出选手编号,用空格隔开。
    解题思路:
    1.编写排序函数。2.统计同一编号出现的次数,跟之前的数气球颜色差不多。
    代码实现:

     1 #include<stdio.h>
     2 #define N 100
     3 int main()
     4 {
     5  int a[N]={0},n,i,max,l=0;
     6  while(scanf("%d",&n),n>=0)
     7  {
     8   a[n]++;
     9  }
    10  max=a[0];
    11  for(i=0;i<N;i++)
    12  {
    13   if(a[i]>=max)
    14   max=a[i];
    15  }
    16  for(i=0;i<N;i++)
    17  {
    18   if((a[i]==max)&&l==0)
    19   {
    20    printf("%d ",i);
    21    l=1;
    22   } 
    23   else if(a[i]==max)
    24   printf("%d",i);
    25  }
    26 }


    易错分析:
    1.直接用输入的编号做数组下标可以省去查找的步骤,然后每个元素的数值即使编号也就是数组下标的出现次数。
    2.用打擂台的方式先找出最大值。
    3.然后用标志变量来判断是否是第一个出现的最佳校友。

  • 相关阅读:
    【Linux】linux系统管理---好用的一些开源工具
    【转载】超级系统工具Sysdig,比 strace、tcpdump、lsof 加起来还强大
    Redis 主从复制
    Redis 持久化之RDB和AOF
    Redis 快速入门
    EasyUI 树菜单
    Nginx 搭建图片服务器
    vsftpd 安装
    Nginx 安装部署
    Mybatis3 快速入门
  • 原文地址:https://www.cnblogs.com/yuanqingwen/p/10395802.html
Copyright © 2011-2022 走看看