2 条题解

  • 0
    @ 2021-03-16 21:01:57

    #include<iostream>
    using namespace std;
    class easy
    {
        public:
            void input(int a[],int na)
            {
                for(int i=0;i<na;i++) cin>>a[i];
            } 
            void lianjie(int a[],int na,int b[],int nb)
            {
                int d=na;
                for(int i=0;i<nb;i++) a[d++]=b[i];
            }
            int Search(int a[],int n,int x)
            {
                for(int i=0;i<n;i++)
                    if(a[i]==x)
                        return 1;
                return -1;
            }
            void binji(int a[],int na,int b[],int nb)
            {
                lianjie(a,na,b,nb);
                for(int i=0;i<na+nb;i++)
                {
                    if(Search(a,i,a[i])==-1)
                        cout<<a[i]<<" ";
                }
            }
        private:
    }k;
    int main()
    {
        int na,nb,nc;cin>>na>>nb>>nc;
        int a[na+nb];
        int b[nb];
        int c[nc];
        int ga[na+nc];
        k.input(a,na);k.input(b,nb);k.input(c,nc);
        for(int i=0;i<na;i++) ga[i]=a[i];
        k.binji(a,na,b,nb);
        printf("\n");
        k.binji(ga,na,c,nc);
        return 0;
    }
    
  • 0
    #include<iostream>
    using namespace std;
    
    //#define UP -3
    //#define DOWN -4
    
    class Array
    {
    private:
        int *a;
        int n;
        int size;
    public:
        Array(int set_n)
        {
            size=10000;
            a=new int[size];
            n=set_n;
        }
    
    
        /*
        Array (char fname[])
        {
            ifstream fin(fname);
            */
    
        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;
        }
    
        /*错误数据
        input:10
              1 2 4 1 3 4 1 2 7 9
        output:1 2 4 1 3 4 1 2 7 9
    
        */
        void uniquelize()
        {
            for(int i=0;i<n-1;i++)
            {
                for(int j=i+1;j<n;j++)
                {
                    int flag=0;
                    if(a[i]==a[j])
                    {
                        flag=1;
                    }
                    if(flag)
                    {
                        for(int p=j;p<n-1;p++)
                        {
                            a[p]=a[p+1];
                        }
                        j--;
                        n--;
                    }
                }
            }
        }
    
    
            /*
            int flag=0;
                if(a[i]==a[i+1])
                {
                    flag=1;
                }
                if(flag)
                {
                    for(int j=i;j<n-1;j++)
                    {
                        a[j]=a[j+1];
                    }
                    i--;
                    n--;
                }
            }
            */
    
    
    
    
        void sum_up(Array &L1,Array &L2)//(求并集)只是单纯的合并,合并同类项要在main函数中调用uniquelize函数,中间要调用uniquelize函数
        {
            int flag_L2=0;
            for(int i=0;i<L1.n;i++)
            {
                a[i]=L1.a[i];
            }
    
            for(int i=L1.n;i<L1.n+L2.n;i++)
            {
                a[i]=L2.a[flag_L2];
                flag_L2++;
            }
    
        }
        
    
    
    
    };
    
    
    int main()
    {
        
        int n1,n2,n3;
    
        cin>>n1>>n2>>n3;
    
        Array a3(n3);
        Array a2(n2);
        Array a1(n1);
    
        Array result_arr1(n1+n2);
        Array result_arr2(n1+n3);
    
        a1.set_array();
        a2.set_array();
        a3.set_array();
    
        result_arr1.sum_up(a1,a2);
        result_arr2.sum_up(a1,a3);
    
    
        //result_arr1.output();
        //result_arr2.output();
    
    
        result_arr1.uniquelize();
        result_arr2.uniquelize();
    
        result_arr1.output();
        result_arr2.output();
        
        
        /*错误数据
        input:10
              1 2 4 1 3 4 1 2 7 9
        output:1 2 4 1 3 4 1 2 7 9
    
        
        int test_n;
        cin>>test_n;
        Array test(test_n);
        test.set_array();
        test.output();
        test.uniquelize();
        test.output();
        */
    
        system("pause");
        return 0;
    }
    
    
    • @ 2019-09-24 16:04:47

      一开始写的uniquelize()函数只能实现相邻相同项的合并

  • 1

信息

难度
6
分类
(无)
标签
递交数
906
已通过
270
通过率
30%
被复制
12
上传者