zoukankan      html  css  js  c++  java
  • 课堂练习-找水王扩展

    在上一次练习的基础上,大水王消失了,出现了3个小水王,且每个水王发帖的数量都超过1/4.找出3水王

    思路:

    上次作业的找水王是通过设两个变量使用消除法来寻找出大水王,以此类推,这一次我们可以通过六个变量来推导出三水王,每两个代表一个水王,其中一个表示ID,另一个用来使用消除法抵消次数,因为每个水王发帖量都超过1/4,所以一遍运行下来,三水王的ID出现次数都不会被抵消。

     对应代码:

    #include<iostream>
    #include<string>
    using namespace std;
    
    int main()
    {
        string tieba[]={"wang","xiaozi","xiaozi","wang","hz","hc","hz","asdf","wang","xiaozi","hz","hz","sdf","wang","hz","xiaozi"};
        int court[3]={0};  //用于计数 
        int ID[3]={0,1,2};         //记入ID 
        /*
        使用消去法,读入一个ID,与ID数组相比较。
        1、ID数组中含有对应ID则相应court+1;
        2、如果对应数组ID都没有与之对应,那么查看是否有ID对应court==0,如果有则替换对应ID;
        3、条件一和条件二都没有满足则,court数组都减1;
        */
        for(int i=0;i<sizeof(tieba)/sizeof(tieba[0]);i++)
        {
            if(tieba[ID[0]]==tieba[i])
            {
                court[0]++;
            }else if(tieba[ID[1]]==tieba[i])
            {
                court[1]++;
            }else if(tieba[ID[2]]==tieba[i])
            {
                court[2]++;
            }else if(court[0]==0)
            {
                ID[0]=i;
            }else if(court[1]==0)
            {
                ID[1]=i;
            }else if(court[2]==0)
            {
                ID[2]=i;
            }else
            {
                court[0]--;
                court[1]--;
                court[2]--;
            }
        }
        for(int i=0;i<3;i++)
        {
            cout<<""<<i+1<<" 个水王是:"<<tieba[ID[i]]<<endl; 
        }
        return 0;
    } 

    结果:

  • 相关阅读:
    css属性设置
    自由从摇篮开始 ——杨支柱
    提醒幸福
    随记
    那些回不去的年少时光(桐华)
    Javascript 与正则表达式
    XmlHttpRequest对象的获取及相关操作
    CSS的4种引入方式及优先级
    c#textBox控件限制只允许输入数字及小数点,是否为空
    c# 循环界面控件
  • 原文地址:https://www.cnblogs.com/miaojinmin799/p/5532928.html
Copyright © 2011-2022 走看看