数组传递出错,输入的数组和输出的数组不一致

将数组地址传给指针但是结果不对
输入的数组和输出的数组不一致

#include<iostream>
using namespace std;
int n=0;
int m=0;
int main(){
    int shuchu(int x[], int y[]);
    int jys(int x[], int y[]);
    int bys(int x[], int y[]);
    int cys(int x[], int y[]);
    int A[]={};
    int B[]={};
    cout<<"请输入集合A:";
    while(1){
        cin>>A[n];

        if(A[n]<0){
            break;
        }
        n++;
    }
    cout<<endl;
    cout<<"请输入集合B:";
    while(1){
        cin>>B[m];

        if(B[m]<0){
            break;
        }
        m++;
    }
    cout<<endl;
    cout<<"1---输入集合A和B"<<endl;
    cout<<"2---求集合A交B"<<endl;
    cout<<"3---求集合A并B"<<endl;
    cout<<"4---求集合A-B"<<endl;
    cout<<"退出,输入一个负数!"<<endl;
    int i;
    cin>>i;
    switch(i){
        case 1:shuchu(A,B);break;
        case 2:jys(A,B);break;
        case 3:bys(A,B);break;
        case 4:cys(A,B);break;
    }

}
int shuchu(int x[], int y[]){
    int i,j;
    for(i=0;i<n;i++){
        cout<<x[i]<<" ";
    }
    cout<<endl;
    for(j=0;j<m;j++){
        cout<<y[j]<<" ";
    }
    cout<<endl;
}
int jys(int x[], int y[]){
    int i,j;
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            if(x[i]=y[j]){
                cout<<x[i];
            }
            if(x[i]<0){                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
                break;
            }
        }
    }
}
int bys(int x[], int y[]){
    int i,j,h,g;
    int a[]={};
    for(i=0;i<n;i++){
        a[i]=x[i];
    }
    for(j=0;j<m;j++){
        a[i+j]=y[j];
    }
    for(h=0;h<i+j;h++){
        for(g=h;g<i+j;g++){
            if(a[h]==a[g+1]){
                a[g+1]=-1;
            }
        }
    }
    for(m=0;m<i+j;m++){
        if(a[m]>0){
            cout<<a[m]<<" ";
        }
    }
}
int cys(int x[], int y[]){
    int i,j,k=0;
    int a[n];
    for(i=0;i<n-1;i++){
        for(j=0;j<m-1;j++){
            if(x[i]!=y[j]){
                k++;
            }
        }
        if(k==m-1){
            cout<<x[i]<<" ";
        }
    }
}

你这个程序问题太大了,m n定义为全局变量
A和B没有分配空间
下面都越界了