zoukankan      html  css  js  c++  java
  • 课堂作业——找水王

    题目:
    三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    设计思路:

    输入发帖ID记录表,从第一个ID开始,与后续的发帖ID进行比较,若相同计数器则加一,否则减一。若计数器的数值被减为零,则重新选取当前ID开始记录比较。并且每次在相同的情况下,记录相同数的个数,同时输出结果的时候进行判断,是否有水王。最后并输出结果。

    源代码:

    #include<iostream>
    using namespace std;
    
    int FindWaterKing(int IDNum[],int m,int &waterking)
    {
    
       int count=0,count1=0;            //计数,相同帖子ID数目,水王
       for(int i=0;i<m;i++)
       {
           if(count==0)                //计数等于0
           {
               waterking=IDNum[i];                   //当前的ID为水王
               count++;                                //计数加1
               count1=0;
               count1++;
           }
           else                                  //计数不等于0
           {
               if(waterking==IDNum[i])             //当前ID等于水王
               {
                   count++;                     //计数加1
                   count1++;
               }
               else
                   count--;                     //计数减1
           }   
       }
       return count1;
    }

    int main(){ int IDNum[100]; //存放帖子ID int n,waterking,num; //帖子数量,水王,相同帖子数目 cout<<"请输入帖子数量:"<<endl; cin>>n; cout<<"请输入帖子ID:"<<endl; for(int i=0;i<n;i++) { cin>>IDNum[i]; } num=FindWaterKing(IDNum,n,waterking); if(num>(n/2)) cout<<"水王是:"<<waterking<<endl; else cout<<"没有水王!!!"<<endl; return 0; }
     

    截图:

    四、个人总结

        本次实验是找水王的第一次作业,有很多方法都可以实现,我采用的是这种方法,其中需要测试边界条件,若出现没有水王的情况就会出现错误,

    每次写程序都要做单元测试 ,测试不同的边界条件。

  • 相关阅读:
    禅道开源版本安装
    NATAPP内网穿透实现
    nginx部署前端项目
    docker-compose部署微服务
    python编写猜数字游戏
    Linux命令(用户管理、组和时间管理)
    Linux命令(文本编辑器)
    Linux的简单命令(防火墙篇)
    什么是泛型
    spring bean 的作用域之间有什么区别
  • 原文地址:https://www.cnblogs.com/linumy/p/5509080.html
Copyright © 2011-2022 走看看