将数组地址传给指针但是结果不对
输入的数组和输出的数组不一致
#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没有分配空间
下面都越界了