寻找水王2——寻找三个小水王

一、实验题目

二、实现方法及设计思路

三、实验代码

//data:2016.5.27
#include<iostream>
#include<string>
#include<fstream>
using namespace std;

void getArray(string a[])
{
    string strTemp;              //获取文件中第一个字符,判断文件是否为空
    cout << "读取帖子列表可得:" << endl;
    fstream fileIn;
    fileIn.open("id.txt", ios::in);       //从文件id.txt中读取帖子列表
    if (!fileIn.is_open())                //判断文件是否被打开
    {
        cout << "没有打开文件!!" << endl;
        exit(0);
    }
    fileIn >> strTemp;                     //此句读入文件中第一个字符,必须和下面的判断连用
    if (fileIn.eof())                      //判断打开的文件是否为空,注意判断条件
    {
        cout << "打开的文件为空!!" << endl;
        exit(0);
    }

    a[0] = strTemp;                 //打开的文件不为空,读入文件的内容
    cout << strTemp << endl;
    for (int i = 1; i < 20; i++)
    {
        fileIn >> a[i];
        cout << a[i] << endl;
    }
    fileIn.close();
}

void getWaterRing(string strItem[])
{
    int intCount[3] = { 0, 0, 0 };        //设置三个变量,用来计数,记录ID号出现的个数
    string strID[3] = { "#", "#", "#" };  //设置三个变量,用来记录ID号

    //以下为查找三个小水王的操作
    for (int i = 0; i < 20; i++)
    {
        if (strID[0] == strItem[i])
        {
            intCount[0] = intCount[0] + 1;
        }
        else if (strID[1] == strItem[i])
        {
            intCount[1] = intCount[1] + 1;
        }
        else if (strID[2] == strItem[i])
        {
            intCount[2] = intCount[2] + 1;
        }
        else if (intCount[0] == 0)
        {
            intCount[0] = 1;
            strID[0] = strItem[i];
        }
        else if (intCount[1] == 0)
        {
            intCount[1] = 1;
            strID[1] = strItem[i];
        }
        else if (intCount[2] == 0)
        {
            intCount[2] = 1;
            strID[2] = strItem[i];
        }
        else
        {
            intCount[0] = intCount[0] - 1;
            intCount[1] = intCount[1] - 1;
            intCount[2] = intCount[2] - 1;
        }
    }

    cout << "第一个水王是:" << strID[0] << endl;
    cout << "第二个水王是:" << strID[1] << endl;
    cout << "第三个水王是:" << strID[2] << endl;
}

int main()
{
    string strItem[20];          //设置数组,用来记录每条帖子的ID号   ,此处可以不用初始化,若初始化为null则报错

    getArray(strItem);
    getWaterRing(strItem);

    return 0;
}

四、实验截图

五、实验心得

时间: 2024-11-12 18:17:05

寻找水王2——寻找三个小水王的相关文章

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

一.题目描述 随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗? 二.解决思路 沿用上次消除的思想,定义三个计数器和三个嫌疑水王,比较三个ID,如果不相同,就排除,如果相同,那么计数器加一.嫌疑水王ID都与其它水军ID进行抵消最后剩下的就是三个水王. 三.程序代码 // shuiba.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include &q

课堂测试-找小水王

题目:在上一次的基础上,大水王消失了,出现了三个小水王,并且他们发帖数均超过总数的1/4,要求:如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这三个小水王吗? 代码: //找小水王 lvguanghao #include <iostream> using namespace std; #define N 100 int main() { int xiaoshuiwang[3]; int ID[N], a; int num = 0; int count[

寻找小水王

寻找发帖“水王”问题的扩展:“超级水王”没有了.统计结果表明,有3个发帖很多的ID,他们的发帖数目都超过了帖子总数目N的1/4.你能从发帖ID列表中快速找出他们的ID吗? (一)分析问题: 如果每次删除四个不同的ID(不管是否包含发帖数目超过总数1/4的ID),那么,在剩下的ID列表中,原先发帖比例大于1/4的ID所占比例仍然大于1/4,可以通过不断重复这个过程,把ID列表中的ID总数降低(转化为更小的问题),从而得到问题的答案 (二)代码实现: package 找小水王; public cla

软件工程 寻找小水王

设计思想: 随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4.已知小水王有三个,而且他们每个人发帖数均超过了1/4,按照id给所有帖子排序,这样同id的帖子就聚集在一起,由于每个水王的发帖数均大于1/4,所以可以根据每个id在数组中的位置找出三个水王. 代码: 实验结果:

找小水王

一.题目要求 随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID.据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗? 二.设计思想 参考:http://www.cnblogs.com/sooner/archive/2013/04/02/2996589.html 由于大水王的代码,自己实现的不好,这次参考了别人的,但是还没弄透,明天再跟新,附自己理解后的代码!!!!! 三.代码实现 //mao2016.5.28 //找小水王 #include <iostr

Wince6.0应用开发:三、小技巧揭秘

在Wince6.0的应用开发过程中,掌握一些使用的小技巧,必定会事半功倍 那么,你做好心里准备了吗?3.2.1. 技巧一:我会告诉你你为Wince开发的程序可以在你的电脑上运行!                     这个技巧的用途有两个 1.测试程序能否达到预期效果 还记得我们上一篇帖子在模拟上用的小程序吗? 我们现在PC上运行一下 2.捕捉在Wince上不显示的异常 有时候,在Wince上运行应用程序,即使出错了也不会抛出异常,当这个时候我们只需要在电脑上运行程序便会捕捉到程序的异常,这对

关于微信小程序下拉出现三个小点

包子这天看美团外卖的小程序,再瞅瞅自己的背景色,发现,美团下拉的时候有三个小点,但是我自己的校车徐下拉的时候没有三个小点,很是郁闷,于是各种的找各种的找,发现,这三个小点是微信小程序自带的,你只需要设置一下全局的背景色就ok了,设置全局的背景色在app.json里面设置就行,记住,是设置这个属性backgroundColor,不是这个属性:navigationBarBackgroundColor.....谨记谨记......这个定位我在上次说过了,接了百度地图的api.....

电脑木马的三个小命令

一.检测网络连接 如果你怀疑自己的计算机上被别人安装了木马,或者是中了病毒,但是手里没有完善的工具来检测是不是真有这样的事情发生,那可以使用Windows自带的网络命令来看看谁在连接你的计算机. 具体的命令格式是:netstat -an这个命令能看到所有和本地计算机建立连接的IP,它包含四个部分——proto(连接方式).local address(本地连接地址).foreign address(和本地建立连接的地址).state(当前端口状态).通过这个命令的详细信息,我们就可以完全监控计算机

II7.0 发布 MVC 4.0 三个小问题记录

原文:II7.0 发布 MVC 4.0 三个小问题记录 1,403.14-Forbidden Web 服务器被配置为不列出此目录的内容 根据提示更改:使用 IIS 管理器启用目录浏览. 打开 IIS 管理器. 在"功能"视图中,双击"目录浏览". 在"目录浏览"页上,在"操作"窗格中单击"启用". 但是改完之后问题依旧,网上又找到说更改web.config节点内容: 1 <system.webServ