1 条题解

  • 2
    #include<iostream>
    using namespace std;
    
    class Array
    {
    private:
        int size;
        int n;
        int *a;
    public:
    
        Array(int set_n)
        {
            n=set_n;
            size=10000;
            a=new int[size];
        }
    
        void set_array()
        {
            for(int i=0;i<n;i++)
            {
                cin>>a[i];
            }
        }
    
        void output()
        {
            for(int i=0;i<n;i++)
                cout<<a[i]<<" ";
            cout<<endl;
        }
    
        /*
    6 6
    3 10 0 -1 67 2
    90 1 3 0 6 4
    1 0
    错误数据
        */
    
        int i_find_second_max()//有i表示返回下表,没i表示返回值
        {
            int first_flag;
            int first_max;
            int second_flag;
            int second_max;
    
            first_max=a[0];
            first_flag=0;
            for(int i=1;i<n;i++)
            {
                if(a[i]>first_max)//找到
                {
                    first_max=a[i];
                    first_flag=i;
                }
            }
    
    
            second_max=-9999999;
            second_flag=0;
            for(int i=0;i<n;i++)
            {
                if(i==first_flag)
                    continue;
    
                if(a[i]>second_max)
                {
                    second_max=a[i];
                    second_flag=i;
                }
            }
    
            return second_flag;
        }
    
    };
    
    int main()
    {
        
        int n1,n2;
        cin>>n1>>n2;
        Array a1(n1);
        Array a2(n2);
        a1.set_array();
        a2.set_array();
    
        cout<<a1.i_find_second_max()<<" "<<a2.i_find_second_max()<<endl;
    
        //a1.output();
    
        system("pause");
        return 0;
    }
    
    
    • @ 2019-09-23 20:19:58

      因为一开始second_max赋的值为a[0],导致如果数组中最大值为第一个数,最后返回的第二大的数的下标也是第一个数,所以干脆直接给second_max一开始赋一个很小的数,这个做法其实有点挑提供的数据的漏洞的意思,如果数据给的全都比-9999999,这个程序也报错

  • 1

信息

难度
8
分类
(无)
标签
递交数
1642
已通过
210
通过率
13%
被复制
3
上传者