zoukankan      html  css  js  c++  java
  • 找水王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以上还有字符串的数组不能实现目前正在寻找解决办法,实验在最开始自己写实验的时候还是有很多误区,尤其是在三个水王的设定的时候,思路比较混乱,借鉴了同学的核心思想能理解读懂但是错误还是没有解决;

  • 相关阅读:
    static 关键字
    gitlab 配置到jenkins
    Eclipse下代码字体背景变红/变绿/变黄原因
    构造方法(和python初始化变量类似)
    面向对象(实际就像python跳用自己写的库那样)
    Python 的AES加密与解密
    break 和 continue 的用法
    for循环
    Eclipse快捷键
    java三元运算符
  • 原文地址:https://www.cnblogs.com/lvlan/p/5535320.html
Copyright © 2011-2022 走看看