zoukankan      html  css  js  c++  java
  • 软件工程课堂训练———找三个小水王

    一、题目描述

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

    二、解决思路

      沿用上次消除的思想,定义三个计数器和三个嫌疑水王,比较三个ID,如果不相同,就排除,如果相同,那么计数器加一。嫌疑水王ID都与其它水军ID进行抵消最后剩下的就是三个水王。

    三、程序代码

    // shuiba.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "iostream"
    
    int main()
    {
        int length;
        int Idcou[3]={0,0,0};//计数器初始化为0
        int ID[3]={0,0,0};     //水王id初始化为0 
        printf("请输入发帖的数量:");
        scanf("%d",&length);
        int * shuiwang=new int [length];
        printf("请输入所有发帖人的ID:");
        for(int j=0;j<length;j++)//输入id
        {
            scanf("%d",&shuiwang[j]);
        }
        for(int i=0;i<length;i++)//找水王
        {
            if(Idcou[0]==0 && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2])
            {
                Idcou[0]=1;
                ID[0]=shuiwang[i];
            }
            else if(Idcou[1]==0 &&shuiwang[i]!=ID[0] && shuiwang[i]!=ID[2])
            {
                Idcou[1]=1;
                ID[1]=shuiwang[i];
            }
            else if(Idcou[2]==0 &&shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1])
            {
                Idcou[2]=1;
                ID[2]=shuiwang[i];
            }
            else if(shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2])
            {
                Idcou[0]--;
                Idcou[1]--;
                Idcou[2]--;
            }
            else if(shuiwang[i]==ID[0])
            {
                Idcou[0]++;
            }
            else if(shuiwang[i]==ID[1])
            {
                Idcou[1]++;
            }
            else if(shuiwang[i]==ID[2])
            {
                Idcou[2]++;
            }       
        }
      printf("三个水王的ID是:
    ");
      printf("%d	%d	%d	
    ",ID[0],ID[1],ID[2]);
        return 0;
    }

    四、运行结果

    五、心得体会

          三个水王和一个水王的问题有很多相似之处,但这个问题刚开始运行结果出来是错误的,后来找到了问题的原因,有一部分可能性忽略了。做完两个找水王的练习之后,我觉得最牛的不是找到最优方法解决问题的人,而是那个幕后的出题者。

       

  • 相关阅读:
    为什么一个字节可以表示的有符号整数的范围是-128~+127?
    redis入门指南(一) ——简介及入门相关
    C Primer Plus(二)
    lua程序设计(一)
    证明:S = 1 + 1/2 + 1/4 + 1/8 + 1/16 + ·······,求证 S = 2
    C Primer Plus (一)
    C语言打印年历
    Spring IoC 自定义标签解析
    CentOS 7 Nacos 集群搭建
    CentOS 7 Zookeeper 和 Kafka 集群搭建
  • 原文地址:https://www.cnblogs.com/123jy/p/4466957.html
Copyright © 2011-2022 走看看