zoukankan      html  css  js  c++  java
  • 找水王(二)

    题目要求:大水王消失,出现三个小水王,所发帖数超过所有帖数的四分之一

    设计思路:这次的算法沿用上一次,只是水王个数增加,继续使用同加异减的方法,只不过增加选择分支语句,精髓还是一样的。

    代码:

    #include<iostream>
    #include<fstream>
    #include<string>
    using namespace std;
    int main()
    {   
    	char iD[20][20];//每行读入的字符
    	string ID[20];//字符串ID
    	int a=0;  
       ifstream out("ID.txt"); 
       if(!out)
       {
    	   cerr<<"文件打开错误"<<endl;
           return 1;
       }
       cout<<"ID表:"<<endl;
       while(!out.eof())
       {
    	  out>>iD[a];
    	  ID[a]=iD[a];//将字符数组转换为字符串
    	  cout<<ID[a]<<endl;//输出ID表
    	  a++;	 
       }
       string king[3];//水王
       int  count[3]={0,0,0};//计数
       for(int i=0;i<20;i++)
      {
    	     if(count[0]==0)//计数为零,将当前ID设为水王
            {
                 count[0]=1;
                 king[0]=ID[i];
            }
            else if(count[1]==0)//计数为零,将当前ID设为水王
            {
                 count[1]=1;
                 king[1]=ID[i];
            }
            else if(count[2]==0)//计数为零,将当前ID设为水王
            {
                 count[2]=1;
                 king[2]=ID[i];
            }
    	    else if(king[0]==ID[i])//若当前ID和水王是同一人,则改水王的计数加一
            {
                 count[0]++;
            }
            else if(king[1]==ID[i])//若当前ID和水王是同一人,则改水王的计数加一
            {
                count[1]++;
            }
            else if(king[2]==ID[i])//若当前ID和水王是同一人,则改水王的计数加一
            {
                 count[2]++;
            }
            else//若当前ID不属于水王,则水王ID均减一
            {
                 count[0]--;
                 count[1]--;
                 count[2]--;
             }
       
       }
       cout<<"水王为:"<<king[0]<<"  "<<king[1]<<"  "<<king[2]<<endl;
       out.close();
       return 0;
    }
    

      

    运行结果:

    经验总结:

    做程序要学会举一反三,很多东西都是大同小异,当老师说了这个题目,我很快就想到应该是一样的,也许是一种惯性,一个使顺了就不愿意换,不过这样很简单。所以呢就是大道至简,越简单越快捷。

  • 相关阅读:
    linux下好用软件全记录
    Shell之Here Document
    ThinkPHP判断更新是否成功的正确方法
    memcached单点登录配置
    gedit搭建c开发环境
    两种算法的比较,学习算法的重要性
    解决sendmail发送邮件慢的问题
    直接拿来用,10个PHP代码片段(收藏)
    Nginx 简单的负载均衡配置示例
    Nginx 虚拟主机 VirtualHost 配置
  • 原文地址:https://www.cnblogs.com/yhhzxcvbnm/p/5535187.html
Copyright © 2011-2022 走看看