课堂练习-----查找水王

 查找水王id

一、设计思路

      题目要求:

      三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

     设计思路:

        在水王发帖数目超过了帖子数目一半的前提下,将id表中每相邻两条帖子的id进行比较,若两个id不相同,则直接过滤掉,按照这种方法,最后留下的id就是水王的id。

二、程序源代码   

 1 // shuiwang.cpp : Defines the entry point for the console application.
 2 //
 3 
 4 #include "stdafx.h"
 5 #include<iostream.h>
 6 int find(int arr[],int num)
 7 {
 8     int shuiwang;
 9     int x;
10     for(int i=x=0;i<num;i++)
11     {
12         if(x==0)
13         {
14             shuiwang=arr[i],x=1;
15         }
16         else
17         {
18             if(shuiwang==arr[i])
19             {
20                 ++x;
21             }
22             else
23             {
24                 --x;
25             }
26         }
27     }
28     printf("这个“水王”的ID就是:");
29     printf("%d\n",shuiwang);
30     return shuiwang;
31 }
32     
33 int main(int argc, char* argv[])
34 {
35     int arry[7]={1,2,1,3,1,4,1};
36     find(arry,7);
37     return 0;
38 }

三、运行结果截图

    

四、总结

      在本次查找水王的id时,我借鉴了网上关于水王查找的思想。在自己设计思路时,总是没办法找到一个很好的办法去实现相邻的两个id的比较和数据的过滤,很让人苦恼,后来看到别人通过设定中间变量的方法来实现,顿时恍然大悟,觉得妙不可言,也对自己的思维进行了变通,得到一定的进步。

转载于:https://www.cnblogs.com/mudanhuakai/p/4446972.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值