软件工程课堂训练———找三个小水王

一、题目描述

    随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的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是:\n");
  printf("%d\t%d\t%d\t\n",ID[0],ID[1],ID[2]);
    return 0;
}

 

四、运行结果

 

五、心得体会

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

   

转载于:https://www.cnblogs.com/123jy/p/4466957.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全新特点(详情可以见论坛演示)<br> 全面美化的论坛界面,强大的个人信箱中心;<br> 实用但不豪华的插件,新增的后台管理功能;<br> <br> 1、面版与展区的全面综合:采用功能分类,个性化面版和展区,头部导航分类。<br> <br> 面版说明:<br> 我的信箱<br> 我的资料<br> 我的权限<br> 修改资料<br> 修改密码<br> 自定风格<br> 发表帖子<br> 参与帖子<br> 显示设置<br> <br> 展区说明:<br> 用户列表<br> 管理团队<br> 斑竹评定<br> 版面帖数<br> 积分排行<br> 热帖排行<br> 今日新帖<br> 论坛精华<br> 图片展区<br> 文件展区<br> 闪客展区<br> <br> <br> 2、增加了多种风格。<br> <br> 3、增加模式选择:<br> 简洁模式<br> 标准模式<br> 我的模式<br> <br> 4、全新个人信箱:写信息,发件箱,收件箱,清空发件箱,清空收件箱<br> 5、更新了界面:上部导航美化,左栏美化,QQ等级图片,全新头像, 联盟logo控制了大小 6、增强的后台功能:显示已有版主,用户列表(点击可直接修改资料),空间详细统计,工资发放 7、扩大缩小发贴编辑区,快捷回复中的发贴表情和高级回复功能 8、首页今日新帖与本周热帖显示. 9、加入论坛奖章,自助联盟,流量统计,底部音乐播放器(管理密码:tz-sky) 10、后台控制登陆注册验证玛和开放注册功能,可以自由控制是否需要验证码及论坛是否开放注册 11、首页增加版面在线人数显示,新信息真人留言语音提醒。 12、新的在线统计文件,可以直接点注册会员查看会员资料 13、后台可以选择分类状态:0为默认方式,1为简便方式,2为隐藏方式 14、最新漏洞补丁都已经打上,请大家放心使用! 注:论坛管理默认用户名:admin 密码:admin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值