• 寻找“大水王”


    /*设计思路:
        Id    1,2,2,3,4,2,2,3,2,2, 2, 2
        id  0 1 2 3 4 5 6 7 8 9 10 11
        可以把这个程序看成一个争抢“水王”的问题
        ①id[i](Id=1) 成为水王shuiwang=id[0],并且他的票数为sum=1,因为目前只有一个1
        ②shuiwang与id[i+1](id=2)比较
            如果相等shuiwang再得一票,sum=1+1=2
            如果不相等,shuiwang减一票,sum=1-1=0
        ③把sum与0进行比较
            如果票数sum=0则id[i](Id=1)失去竞争“水王”的权利,id[i+1](Id=2)成为“水王”,shuiwang=id[i+1]
            如果票数sum>0则id[i](Id=1)仍是“水王”
        ⑤重复②③步骤
        */
    #include<iostream>
    #include<fstream>
    using namespace std;
    
    void readId(int id[100],int &l){ //读取文件中的内容,并放到数组id[]中 注:l需要用&但是数组不用!!
        ifstream infile("id.txt");
        if (!infile)
        {
            cout << "读取失败!" << endl;
        }
        while (infile >> id[l])
        {
            l++;
        }
        infile.close();
    }
    void findShuiwang(int id[100],int &shuiwang,int &l)//寻找水王
    {
        int sum = 1;
        for (int i = 1; i < l-1; i++)
        {
            if (shuiwang = id[i + 1])
            {
                sum++;
            }
            else
            {
                sum--;
            }
            if (sum == 0)
            {
                shuiwang = id[i + 1];
            }
        }
    }
    
    void main()
    {
        int i,l=0,id[100];//l为数组长度
        int shuiwang;
        readId(id,l);
        if (l == 0)
        {
            cout << "文件为空!!" << endl;
        }
        else
        {
            shuiwang = id[0];
            findShuiwang(id, shuiwang, l);
            cout << "大水王是:" << shuiwang << endl;
        }
    }

    测试1:

    测试2:文件为空

    测试3:

        int i,l=0,id[100];//l为数组长度

      id[]数组的的长度应该根据实际情况来定义,目前的一张id表,id数目应该不会超过100。

    测试4:本程序只是一个解决该问题的思路,所以在定义Id的时候默认为int,在此也没有考虑如果Id存在符号的情况。因为如果这是一张真实的Id表,Id就不可以存放到数组中。

      应该定义一个结构体。

  • 相关阅读:
    java定时任务接口ScheduledExecutorService
    spring InitializingBean接口
    spring aop 的一个demo(未完,待完善)
    Spring ApplicationContextAware获取上下文
    Spring ProxyFactory
    搭建maven+spring+mybatis工程
    spring jdbcTemplate源码剖析
    chrome插件
    基于分支限界法的旅行商问题(TSP)一
    利用分支限界法求解单源最短路(Dijkstra)问题
  • 原文地址:https://www.cnblogs.com/-beauTiFul/p/5521038.html
Copyright © 2020-2023  润新知