• 课堂练习-找水王续


    一.题目

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

    二.设计思路

      和之前的博客的找水王的思路类似,只不过这次变成了找三个而已,利用帖子的数量都超过了四分之一,将不一样的减一,一样的加一。

    三.源代码

    // 水桶.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include<iostream.h>
    #define max 50                       //ID数组的最大值
    /*ID号的输入*/
    int input(int ID[])
    {
        int length;
        cout<<"请输入ID的数量:";
        cin>>length;
    
        cout<<"请输入ID:"<<endl;
        for(int i=0;i<length;i++)        //ID号的输入
        {
            cin>>ID[i];
        }
    
        return length;                    //返回值是该ID数组的长度
    }
    /*寻找水桶*/
    void searchst(int ID[],int length,int st[])
    {
        int Count[3];                    //三个计数器
        Count[0]=Count[1]=Count[2]=0;    //给Count数组赋初值
    
        for(int i=0;i<length;i++)        //遍历一遍ID数组
        {
            if(Count[0]==0)              //若计数器为0,则相应的水桶=当前的ID,且相应的Count=1
            {
                st[0]=ID[i];
                Count[0]=1;
            }
            else if(Count[1]==0)
            {
                st[1]=ID[i];
                Count[1]=1;
            }
            else if(Count[2]==0)
            {
                st[2]=ID[i];
                Count[2]=1;
            }
            else if(st[0]==ID[i])        //若st与ID相等,则相应的计数器加一
            {
                Count[0]++;
            }
            else if(st[1]==ID[i])
            {
                Count[1]++;
            }
            else if(st[2]==ID[i])
            {
                Count[2]++;
            }
            else                        //若当前的ID与st都不相等,则三个计数器都减一
            {
                Count[0]--;
                Count[1]--;
                Count[2]--;
            }
        }
    }
    int main()
    {
        int st[3];
        int ID[max];
    
        searchst(ID,input(ID),st);        //调用函数寻找水桶
        cout<<"水桶是:"<<endl;
        cout<<"	(1)"<<st[0]<<endl<<"	(2)"<<st[1]<<endl<<"	(3)"<<st[2]<<endl;
    
        return 0;
    }

    四.结果及截图

      

      

    五.心得

      刚开始的时候以为在给数组st初始化时需要将不同的三个值赋给它,后来在调试的时候发现,不管是不是一样,结果都是一样的。

  • 相关阅读:
    20161115学习笔记
    20161114学习笔记
    微服务
    20161111学习笔记
    20161110学习笔记
    统一ID生成服务
    BlockingQueue原理
    spring常用注解
    Spring 事件发布
    java8 DateUtil工具
  • 原文地址:https://www.cnblogs.com/menglikanhualuo/p/4461698.html
Copyright © 2020-2023  润新知