找水王02

1、实验题目:

在上一个实验的基础之上进行的,题目是水王没有了但是统计结果显示有三个发帖很多的ID ,据统计他们的发帖数量超过了1/4,从列表中找到他们。

2、设计思想:

再上一个实验的基础之上,将水王假设为三个然后一一对比找到水王。

上次思路:子函数 bijiao ()是用来查找水王的计算思想,首先定义整型count来计数水王出现发的次数,定义字符型k来代替“水王”初始设为字符串数组中第一个数组,所以子函数中可能会出现多个“水王”。For循环语句从i=1开始用k和字符传输组中的元素作比较如果相同计数count加1。如果count不等于零减1;如果元素既不相同count又不满足不为零将count置为零;接下来当count=0时k的值改变,k=ArrayOfking[i];count同时置为1;循环最后输出最后水王k;主函数中定义字符串并赋值;调用子函数运行输出最后结果;

本次试验是在第一次实验的思想上做的,实验关键就是使每个水王不同,这就需要在最开始假设的时候设定条件;

实验代码:

 

 1 #include<iostream>
 2 using namespace std;
 3 void bijiao(int num[])
 4 {
 5     int count_1=0,count_2=0,count_3=0;//计水王出现的次数 
 6     int king_1=0,king_2=0,king_3=0;//用来计为水王 
 7     //循环用来找水王 
 8     for(int i=0;i<9;i++)
 9     {
10         if(count_1==0&&king_2!=num[i]&&king_3!=num[i])//用来找第一个水王 
11         {
12             count_1=1;
13             king_1=num[i];
14         }
15         else if(count_2==0&&king_1!=num[i]&&king_3!=num[i])//用来找第二个水王 
16         {
17             count_2=1;
18             king_2=num[i];
19         }
20         else if(count_3==0&&king_1!=num[i]&&king_2!=num[i])//用来找第三个水王 
21         {
22             count_3=1;
23             king_3=num[i];
24         }
25         else
26         {
27             if(num[i]==king_1)//判断水王是否再次出现 
28             {
29                 count_1+=1;
30             }
31             else if(num[i]==king_2)
32             {
33                 count_2+=1;
34             }
35             else if(num[i]==king_3)
36             {
37                 count_3+=1;
38             }
39             else
40             {
41                 //如果三个水王和num[i]都不匹配,则将所有的水王的数量减一 
42                 count_1--;
43                 count_2--;
44                 count_3--;
45                 //保证count的值要大于0 
46                 if(count_1<0)
47                 {
48                     count_1=0;
49                 }
50                 if(count_2<0)
51                 {
52                     count_2=0;
53                 }
54                 if(count_3<0)
55                 {
56                     count_3=0;
57                 }
58             }
59         }
60         
61     }
62     cout<<"第一个水王:"<<king_1<<endl;
63     cout<<"第二个水王:"<<king_2<<endl;
64     cout<<"第三个水王:"<<king_3<<endl; 
65 }
66 int main()
67 {
68     int num[9]={12,12,33,22,12,33,45,45,1};
69     cout<<"水王的ID:"<<endl;
70     for(int i=0;i<9;i++)
71     {
72         cout<<num[i]<<" ";
73         
74     }
75     cout<<endl;
76     bijiao(num);
77 }

实验截图:

实验总结:

核心实验思想是借鉴的同学的,实验虽然能实现但是会出现一些问题比如实验要求必须在1/4以上还有字符串的数组不能实现目前正在寻找解决办法,实验在最开始自己写实验的时候还是有很多误区,尤其是在三个水王的设定的时候,思路比较混乱,借鉴了同学的核心思想能理解读懂但是错误还是没有解决;

 

posted on 2016-05-27 17:05  岚兰蓝  阅读(155)  评论(0编辑  收藏  举报

导航