zoukankan      html  css  js  c++  java
  • 软件工程课堂作业(十五)——揪出“水王”续

    一、题目:

          随着论坛的发展,管理员发现“水王”没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了总和的1/4。请设计算法从列表中快速找到他们。

    二、设计思路:

          扩展题目和原题基本相似,方法是一样的,都可用消除思想。可以三个比较,若不相同,则删除,若相同,则计数器加一。

    三、源代码:

     1 //找小“水王”——胡亚宝——2015/04/26
     2 
     3 #include "stdafx.h"
     4 #include"iostream"
     5  6 
     7 
     8 int _tmain(int argc, _TCHAR* argv[])
     9 {
    10     int len;
    11     int idsum[3]={0,0,0};
    12     //int A[100];
    13     int ID[3]={0,0,0};
    14     printf("请输入发帖总和:");
    15     scanf("%d",&len);
    16     int * shuiwang=new int [len];
    17     printf("请输入发帖人ID:");
    18     for(int m=0;m<len;m++)
    19     {
    20         scanf("%d",&shuiwang[m]);
    21     }
    22 
    23     for(int i=0;i<len;i++)
    24     {
    25         /*先将ID列表初始化,找出三个不同的ID*/
    26         if(idsum[0]==0 && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2])
    27         {
    28             idsum[0]=1;
    29             ID[0]=shuiwang[i];
    30         }
    31         else if(idsum[1]==0 && shuiwang[i]!=ID[0] && shuiwang[i]!=ID[2])
    32         {
    33             idsum[1]=1;
    34             ID[1]=shuiwang[i];
    35         }
    36         else if(idsum[2]==0 && shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1])
    37         {
    38             idsum[2]=1;
    39             ID[2]=shuiwang[i];
    40         }
    41         /*开始进行查找,不同标志idsum+1,相同标志-1*/
    42         else if(shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2])
    43         {
    44             idsum[0]--;
    45             idsum[1]--;
    46             idsum[2]--;
    47         }
    48         else if(shuiwang[i]==ID[0])
    49         {
    50             idsum[0]++;
    51         }
    52         else if(shuiwang[i]==ID[1])
    53         {
    54             idsum[1]++;
    55         }
    56         else if(shuiwang[i]==ID[2])
    57         {
    58             idsum[2]++;
    59         }
    60         
    61     }
    62 
    63     
    64     printf("%d	%d	%d	
    ",ID[0],ID[1],ID[2]);
    65     
    66     return 0;
    67 }

    四、运行结果:

    五、心得体会:

          这次的扩展问题和之前的问题类似,方法都是一样,几个地方稍加修改就能解决这个问题。

          虽然方法一样,但是在处理这个问题时具体的方法还是有不同,比如计数器的改变、一个人变成了三个人,将这三个人看成一个整体等。在解决的过程中,我对这个问题有了更深的了解,对之前的解决方法也更了解了。

  • 相关阅读:
    一些正则表达式
    iOS汉字中提取首字母
    flutter 按钮弹簧动画AnimationController
    In iOS 14+,debug mode Flutter apps can only be launched from Flutter tooling,IDEs with Flutter plugins or from Xcode.
    Failed to connect to raw.githubusercontent.com port 443: Connection refused
    iOS组件库创建(二)
    iOS组件库创建(一)
    同个电脑多个ssh key的配置
    网络相关总结
    flutter 热更新实现方案—UI资源化(二)
  • 原文地址:https://www.cnblogs.com/huyabaoboke/p/4457995.html
Copyright © 2011-2022 走看看