谁能解答一下我的疑惑!!
#include"stdio.h"void main()
{ int x[5],y[5];
int i,j,k,p,*p1=x,*p2=y;
int test2(int *x,int *y,int m,int n);
printf("Input x:");
for(i=0;i<5;i++)
scanf("%d",&x[i]);
printf("Input y:");
for(j=0;j<5;j++)
scanf("%d",&y[j]);
k=test2(p1,p2,5,5);
for(p=0;p<k;p++)
printf(" %d",x[p]);
}
int test2(int *x,int *y,int m,int n)
{int p=0,i,j,k=m;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(*(y+j)==*(x+i))
{
k--;
break;
}
if(j==n){*(x+p)=*(x+i);p++;}
}
}
return(k);
}
为什么这个从程序输入
X:1 2 3 4 5
Y:3 4 5 6 7
的时候出来的就是1 2,这个结果是对的
输入
X:3 4 5 6 7
Y:1 2 3 4 5
的时候出来的就是3 4,是错的
帮我解答一下吧!