随堂练习----寻找水王(二)

一、题目

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

二、设计思路

    这次实验的思路与上一次的思路类似,通过“消消乐”的方式解决问题,不过这次水王的数量增加到了三个,所以比较的数量也会有所增加,而且要设置相应的变量来记录比较的过程。

三、源代码

#include<iostream.h>
void Data(int l,int A[]); 
int main()
{
    int l;//长度
    int target[3]={0,0,0};
    int ID[3]={-1,-1,-1};      
    cout<<"*********************************************************"<<endl;
    cout<<"请输入的帖子数量:";
    cin>>l;
    cout<<"*********************************************************"<<endl;
    int * shuiwang=new int [l];
    Data(l,shuiwang);
    for(int i=0;i<l;i++)
    {
        
        if(target[0]==0 && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2])
        {
            target[0]=1;
            ID[0]=shuiwang[i];
        }
        else if(target[1]==0 && shuiwang[i]!=ID[0] && shuiwang[i]!=ID[2])
        {
            target[1]=1;
            ID[1]=shuiwang[i];
        }
        else if(target[2]==0 && shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1])
        {
            target[2]=1;
            ID[2]=shuiwang[i];
        }
        
        else if(shuiwang[i]!=ID[0] && shuiwang[i]!=ID[1] && shuiwang[i]!=ID[2])
        {
            target[0]--;
            target[1]--;
            target[2]--;
        }
        else if(shuiwang[i]==ID[0])
        {
            target[0]++;
        }
        else if(shuiwang[i]==ID[1])
        {
            target[1]++;
        }
        else if(shuiwang[i]==ID[2])
        {
            target[2]++;
        }
        
    }
    cout<<"*********************************************************"<<endl;
    cout<<"水王一为:"<<ID[0]<<endl;
    cout<<"水王二为:"<<ID[1]<<endl;
    cout<<"水王三为:"<<ID[2]<<endl;
    cout<<"*********************************************************"<<endl;
    return 0;
}
void Data(int l,int A[])

{
    
    cout<<"请输入ID序列:"<<endl;
    for(int i=0;i<l;i++)
        
    {
        
        cin>>A[i];
        
    }
    
}

四、实验截图

五、实验总结

本次实验是上一次实验的扩展,基于上次的思想有了一次小小的提升,又一次体会到了解决问题分解目标的重要性和高效性,在后续的学习中我会多加利用这种方法,来解决更多的问题。

原文地址:https://www.cnblogs.com/myblog1993/p/4465106.html