zoukankan      html  css  js  c++  java
  • 个人项目——找水王

    寻找论坛里的“水王”

    一、程序要求

        三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

       如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    二、程序设计思想  

         题目给出:“水王”发帖数目超过了帖子数目的一半,那么在众多的帖子中,至少有两个是挨着的,即有相邻的两个ID是相同的。把回帖列表简单化——在一个数组里,存着若干数,其中一个数的数目超过数组中所有数的数目的一半以上。所以,每两个数比较:若相同,目前水王出现次数加1,不同就减1;如果目前水王出现次数为0,就从当前ID重新开始两个数比较,重复上述过程,一直到最后一个数,找到水王。

    三、源程序

    //李俏,找水王抽象程序
    //2016.5.19
    #include<iostream>
    using namespace std;
    
    int main()
    {
        int num,arr[1000];
        int wknum=0, wkresult;//水王出现的次数和水王的ID
        int i;
    
        cout << "请输入帖子的数量:";
        cin >> num;
    
        cout << "请输入帖子ID:" << endl;
        for (i = 0; i < num; i++)
        {
            cin >> arr[i];
        }
      
        for (i = 0; i != num; i++)
        {
            if (wknum == 0)//没有出现相同的ID
            { 
                wkresult = arr[i];//就从当前ID重新开始
                wknum++;
            }
            else//出现相同ID
            { 
                if (wkresult == arr[i])
                { 
                    wknum++;
                }
                else
                {  
                    wknum--;
                }
            }
        }
    
        cout << "水王的ID为:" << wkresult << endl;
    return 0; }

    四、结果截图

    五、心得体会

        课堂上,老师布置这个作业时,让我们反复读题,并且讨论,但是我还是一脸的懵——我根本不知道这道题是可以并且要用程序解决的,更别提如何用代码实现。后来老师给出了思路:“水王”发帖数目超过了帖子数目的一半,那么在众多的帖子中,至少有两个是挨着的,即有相邻的两个ID是相同的,这两个连续相邻的数就是水王。通过这次课堂练习,我充分意识到,自己是多么的“软弱”:作为一个计算机专业的学生,没有程序自觉性——当遇到问题不会首先想到程序可以解决这一问题;自己学习的知识都是独立成块的,不能将所学的知识融会贯通,只会就事论事;自己编程能力还是不足,想法过于复杂,并且不太能够将思路转化为程序语言。这些都是今后需要提高的。

  • 相关阅读:
    进程和程序的区别
    【Docker】5. 常用命令 — 镜像命令
    【Docker】4. 运行镜像的流程、docker工作原理
    【Docker】3. 配置阿里云镜像加速
    【Docker】2. Docker的架构介绍、安装与卸载 (CentOS 7)
    【Docker】Docker概述
    【Git】5. 远程库(GitHub)相关操作
    【Git】4. 团队内、跨团队协作机制
    【Git】3. Git重要特性-分支操作,合并冲突详解
    线性插值编写可视化代码
  • 原文地址:https://www.cnblogs.com/Aliqiao/p/5512171.html
Copyright © 2011-2022 走看看