课堂练习之找“水王”

一、题目要求

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

      如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者ID在其中,请设计算法快速找到这个传说中的“水王”。

二、设计思路

    设计思路还没想明白。。只能看一下同学的思路了。。

  程序的设计思路大体就是,首先设2个变量,将第一个数暂时给shuiwang这个变量并且和下一个数比较,如果相同则用一个X变量自加一,不同则减一;如此循环,如果遇到不同时,一直减减减,x变为0,shuiwang又被新的数覆盖,以此类推,找到最终的水王ID。

三、源代码

 1 #include<iostream.h>
 2 
 3 int findshuiwang(int arrID[],int num)
 4 {
 5     int shuiwang;
 6     int x;
 7     for(int i=x=0;i<num;i++)
 8     {
 9         if(x==0)
10         {
11             shuiwang=arrID[i],x=1;
12         }
13         else
14         {
15             if(shuiwang==arrID[i])
16             {
17                 ++x;
18             }
19             else
20             {
21                 --x;
22             }
23         }
24     }
25     cout<<("这个“水王”的ID就是:");
26     cout<<("%d
",shuiwang);
27     return shuiwang;
28 }
29     
30 
31 
32 int main()
33 {
34     int arry[6]={222,333,333,333,444,444,};
35     findshuiwang(arry,6);
36     return 0;
37 }

四、实验截图

五、实验总结:

这次的课堂训练还木有想明白。。但是因为睡过了。怕交不上作业,所以只能看了一下同学的思路,基本大致代码还是同学的,稍微优化了一下,感觉还行,真的按照老师说的这个思路代码好简单。。虽然还有一点没有想明白。

原文地址:https://www.cnblogs.com/gaiiiiiiii/p/4448856.html