zoukankan      html  css  js  c++  java
  • 寻找水王02

    题目:

           这次的题目是对第一次题目的一个扩展:随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了总的1/4,如何从发帖列表中快速找到他们?

    程序设计思想:

          这次程序的思路和上次思路一致,不同的是这次需要三个计数器。

    源代码:

    #include <iostream>
    #include <string>
    using namespace std;
    #define N 100
    int main()
    {
        int water_king[3];   //设置三个变量,用来记录ID号
        int ID[N], a ,b;
        int num = 0;
        int count[3] = { 0 };  //设置三个变量,用来计数,记录ID号出现的个数
        bool flag = false;
        cout << "请输入帖子的个数:" << endl;
        cin >> b;
        cout << "请输入ID:" << endl;
        while (cin >> a)     //输入数组 回车结束
        {
            ID[num++] = a;
            if (num > b)
            {
                cout << "输入ID数与帖子数目不匹配" << endl;
                return 0;
            }
            else 
            {
                if (getchar() == '
    ')  //换行停止
                {
                    break;
                }
            }
            
        }
        for (int i = 0; i < num; i++)
        {
            flag = false;
            for (int j = 0; j < 3; j++)
            {
                if (count[j] == 0)
                {
                    continue;
                }
                if (water_king[j] == ID[i])
                {
                    count[j]++;
                    flag = true;
                }
            }
    
            if (flag == true)
            {
                continue;
            }
    
            for (int j = 0; j < 3; j++)
            {
                if (count[j] == 0)
                {
                    water_king[j] = ID[i];
                    count[j]++;
                    flag = true;
                    break;
                }
            }
    
            if (flag == true)
            {
                continue;
            }
    
            for (int j = 0; j < 3; j++)
            {
                count[j]--;
            }
    
        }
        cout << "三个小水王ID 分别为: " << endl;
        cout << water_king[0] << " " << water_king[1] << " " << water_king[2] << endl;
    }

    结果截图:
    当所输入的帖子数目与ID数不一致时

    一致时找出水王

    总结:虽然这次寻找水王的题目是在第一次的基础上进行的,设计思路也是来源于上次,但是这次的程序比上次的要复杂,因为三个“小水王”需要考虑的因素就要比第一个程序考虑的要多,需要要到三个计数器,在今后的编程中还是要多思考。

  • 相关阅读:
    C编程规范
    c# 闭包 小例
    计算前后2行的时间差
    判断是不是奇数
    条件表达式工具类
    代码重构-5 取消类的私有变量(实例变量)
    代码重构-4 通用方法 用 static
    代码重构-3 用Tuple代替 out与ref
    代码重构-2 简单不变的 if else 用字典代替
    代码重构-1 对参数中有 bool值的拆分
  • 原文地址:https://www.cnblogs.com/me-tts/p/5569177.html
Copyright © 2011-2022 走看看