小水王2

1、实验题目

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

2、实验思路

  我觉得这个题听考验我们解题的思路,刚开始只有一个打水王时还稍微简单一点,就是两个两个比较,相同则保留,不同则删除;这一次三个小水王的问题,一开始一点思路也没有,后来在查询了好多资料后,发现其实可以用同样的方法去解决这个问题,上一次是两个比较,这一个应定义三个标记,分别标记三个小水王,然后记录它们的累积次数,然后遍历整个列表,每处理一个ID,若与已标记的小水王中的某一个相同,则次数加一,若与三个都不同,则说明找到了四个互不相同的ID,将三个减一,也就相当于“删除了四个不同ID”,若某一个次数等于0,则重新开始寻找。

3、实验代码

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int length,i,id;
 7     int shuiwang [3]={0}; 
 8     int count[3] ={0}; //标记三个小水王
 9     int ID[10000];
10     int water[10000];
11     cout << "请输入帖子的总个数:";//定义帖子的长度,即数组的个数
12     cin >> length;
13     cout << "请依次输入每个帖子的发布者的ID:" << endl;//输入每个帖子的Id
14     for (i = 0; i < length; i++)
15     {
16         cin >> id;
17         ID[i] = id;
18     }
19    for(int i=0;i<length;i++)//查找三个小水王
20     { 
21             if(ID[i]==shuiwang[0])  
22             {  
23                  count[0]++;  
24             }  
25             else if(ID[i]==shuiwang[1])  
26             {  
27                  count[1]++;  
28             }  
29             else if(ID[i]==shuiwang[2])  
30             {  
31                  count[2]++;  
32             }  
33             else if(count[0]==0)  
34             {  
35                  count[0]=1;  
36                shuiwang[0]=ID[i];  
37             }  
38             else if(count[1]==0)  
39             {  
40                  count[1]=1;  
41                 shuiwang[1]=ID[i];  
42             }  
43             else if(count[2]==0)  
44             {  
45                  count[2]=1;  
46                  shuiwang[2]=ID[i];  
47             }  
48             else  
49             {  
50                  count[0]--;  
51                  count[1]--;  
52                  count[2]--;  
53              }  
54     }
55     
56     cout<<"三个小水王的ID分别是:"<<endl;
57     for(int i=0;i<3;i++)
58      {
59          cout<<shuiwang[i]<<" ";
60      }
61    cout<<endl;
62    return 0;
63 }

4、实验截图

5、时间记录日志(单位:h):

 

日期 开始时间 结束时间 中断时间(min) 净时间(min) 活动 备注
星期一 14:00 15:50 10(课间) 100 听课 软件工程
星期二 20:00 22:00 0 120 编程 水王2
星期三 15:00 17:00 10(休息) 120 看书 人月神话
星期四 14:00 15:50 10(课间) 100 上机 水王2
  20:00 21:30 10(休息) 80 编程 水王2
星期五 18:30 19:10 10(休息) 30 发博客 水王2
posted @ 2016-05-27 19:45  五月的天空  阅读(118)  评论(0编辑  收藏  举报