找水王课堂练习

1题目要求:

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

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

2 设计思路:

1首先如果每次删除两个不同的ID,那么,在剩下的ID列表中,“水王”ID出现的次数仍然超过总数的一半。

2重复这个过程,把ID列表中的ID总数降低,最后找到水王。

3源程序代码:

#include<iostream>
 #include<string>
 using namespace std;
 #define N 20
 
 void main()
 {
     int m = 0;
     string a[N], n;
         cout << "输入帖子的ID号:" ;
         for (int i = 0; i < N; i++)
         {
             cin >> a[i];
         };
         n = a[0];
         for (int i = 0; i < N; i++)
         {
             if (n == a[i])
         {
             m += 1;
         }
         else
             m -= 1;
         if (m < 0)
         {
             n= a[i];
         }
     }
         cout << "水王是:" << n ;
 }

4运行结果截图:

 

原文地址:https://www.cnblogs.com/sunmei20142925/p/5509845.html