课堂练习之检测水军(拓展)

一、题目

三人行设计了一个灌水论坛。随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

二、设计思路

上一次是找出一个水军,这个水军发帖数超过了总帖数一半,这一次是找三个水军,这三个水军每一个人的帖子数都超过了总帖数的1/4,我们只需要在上一次的基础上进行改进就可以了,上一次是挨着消去两个,这次挨着消去四个,剩下最后的三个就是水军。

三、源代码

 1 // shuitong.cpp : Defines the entry point for the console application.

 2 //韩雪东

 3 

 4 #include "stdafx.h"

 5 #include "iostream.h"

 6 int main(int argc, char* argv[])

 7 {

 8     

 9     int i,j=10,k=1,q=1,p=1,id1,id2,id3;

10     int a[10]={1,2,4,3,1,2,3,1,2,3};

11     id1=a[0];

12     id2=a[1];

13     id3=a[2];

14     for(i=3;i<j;i++)

15     {

16         if(id1!=a[i]&&id2!=a[i]&&id3!=a[i])

17         {

18             k=k-1;

19             q=q-1;

20             p=p-1;

21             if(k<=0&&q>0&&p>0)

22             {

23                 id1=a[i+1];

24                 k=1;

25                 i++;

26             }

27             else if(k>0&&q<=0&&p>0)

28             {

29                 id2=a[i+1];

30                 q=1;

31                 i++;

32             }

33             else if(k>0&&q>0&&p<=0)

34             {

35                 id3=a[i+1];

36                 p=1;

37                 i++;

38             }

39             else if(k<=0&&q<=0&&p>0)

40             {

41                 id1=a[i+1];

42                 k=1;

43                 id2=a[i+2];

44                 q=1;

45                 i=i+2;

46             }

47             else if(k<=0&&q>0&&p<=0)

48             {

49                 id1=a[i+1];

50                 k=1;

51                 id3=a[i+2];

52                 p=1;

53                 i=i+2;

54             }

55             else if(k>0&&q<=0&&p<=0)

56             {

57                 id2=a[i+1];

58                 q=1;

59                 id3=a[i+2];

60                 p=1;

61                 i=i+2;

62             }

63             else if(k<=0&&q<=0&&p<=0)

64             {

65                 id1=a[i+1];

66                 k=1;

67                 id2=a[i+2];

68                 q=1;

69                 id3=a[i+3];

70                 p=1;

71                 i=i+3;

72             }

73         }

74         else if(id1==a[i]&&id2!=a[i]&&id3!=a[i])

75         {

76             id1=a[i];

77             k=k+1;

78         }

79         else if(id1!=a[i]&&id2==a[i]&&id3!=a[i])

80         {

81             id2=a[i];

82             q=q+1;

83         }

84         else if(id1!=a[i]&&id2!=a[i]&&id3==a[i])

85         {

86             id3=a[i];

87             p=p+1;

88         }

89         

90     }

91     cout<<"水桶id分别为:"<<id1<<","<<id2<<","<<id3<<endl;

92     return 0;

93 }

四、运行结果

课堂练习之检测水军(拓展)

五、心得体会

既然老师出的题目和上一次有关联,就是在上一次的基础上进行了扩展,那么大致的方法还会和上一次大致相同,我们只要在上一次的基础上进行改进就好了。

你可能感兴趣的:(课堂练习之检测水军(拓展))