小水王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:0015:5010(课间)100听课软件工程
星期二20:0022:000120编程水王2
星期三15:0017:0010(休息)120看书人月神话
星期四14:0015:5010(课间)100上机水王2
 20:0021:3010(休息)80编程水王2
星期五18:3019:1010(休息)30发博客水王2

转载于:https://www.cnblogs.com/zz0906/p/5535832.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值