寻找“水王”01

1.设计思想

  假设ID都在sw.txt中

  首先,按行读取ID

  其次,设置beforeID,记录前一个ID是什么,判断当前ID和beforeID是否相同;如果相同,得到水王ID;如果不同,将当前ID给beforeID,接着读取下一行。

  最后,读取比较完最后一个ID,得到水王。

  (本题假设水王存在,所以不考虑没有水王)

2.代码实现

//2016-5-24 李娜
//根据ID号,寻找发帖数超过一半的“水王”

#include<iostream>
#include<fstream>
#include<String>

using namespace std;

void inputID()//读取ID
{
    string id,beforeID="";
    string sw;

    ifstream infile("e:\sw.txt");

    if (!infile)
    {

        cout<<"文件打开出错!"<<endl;

    }

    while (getline(infile,id))//读取每行的ID
    {
            
        
        if (id==beforeID)
        {
            sw=id;
        }

        else
        {
            beforeID=id;
        }                
    
    }
    cout<<"“水王”的ID是:"<<sw<<endl;
    
}
int main()
{

    inputID();
    return 0;
    
}

3.测试截图:

4.个人总结

  其实上课已经说出了关键在于“两两消除”,也没什么难的。

  我认为getline这个函数很适合在这里,毕竟如果不用就得一个一个字符读入,然后判断是不是有空格、回车什么的。

  其实本来我是想用字符串数组存放ID的,但是写着太长了,就直接读一个比一个吧。

原文地址:https://www.cnblogs.com/linanil/p/5525549.html