查找水王01

  1. 设计思想:

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

例子: asdv,asdv,ggg,kkk,long ,asdv,asdv;

初始k = asdv ,count = 1;

k和 下一个字符串比较相同 count加1,count=2;

k和字符串 ggg比较 发现不相同count又不为零count减1,count=1;

count不为零 继续i++,k 和kkk比较不相同count减1,count=0,k值改变,k=kkk  count=1;

k和long作比较不相同count减1  count=0,k值改变 变为long  count=1;

k和asdv 作比较不相同count 减1 count=0,k=asdv count=1;

k和asdv作比较相同 count加1;

count=0;

输出没有水王;

输出水王 k(asdv);

 1 // 吕兰兰 信1301-2 20133056 
 2 //查找水王 水王发帖数目超过帖子数目的一半,假设有一份列表在里边快速找到水王,不用排序的思想如何实现
 3 #include<iostream>
 4 using namespace std;
 5 void bijiao(string ArrayOfking[])
 6 {
 7     int count=1;//用来计算水王出现的次数,只有当count=0时水王的值才会变化;
 8     string k=ArrayOfking[0];//首先默认水王为第一个数字; 
 9     for(int i=1;i<10;i++)
10     {    
11         if(k==ArrayOfking[i])
12         {
13             count++;//水王第二次出现+1; 
14         }
15         else
16         {
17             if(count!=0)
18             {
19                 count--;//如果count的值不为0且两个数字不相等,计数水王个数减1; 
20             }
21             else 
22             {
23                count=0;    
24             }
25         }
26         if(count==0)//如果计数水王个数变为0,则水王的值变换为第i个值 ,count的值重新记为1 
27         {
28             k=ArrayOfking[i];
29             count=1;
30         } 
31     }
32     cout<<"水王为:"<<k;     
33 
34 }
35 
36 int main()
37 {
38     string ArrayOfking[10]={"男神宋仲基","宋慧乔","男神宋仲基","黄渤","男神宋仲基","男神宋仲基","张艺兴","男神宋仲基","huanglei","男神宋仲基"};//定义字符串数组; 
39     bijiao(ArrayOfking);//调用函数; 
40 }

个人总结: 本次实验的设计思想是在老师的指点和同学的帮助下得到的,程序代码自己编写,总的来说还是比较简单的,只要思想正确代码实现起来比较简单;

 

posted on 2016-05-19 15:31  岚兰蓝  阅读(180)  评论(0编辑  收藏  举报

导航