在c语言中输入数组两个数组,查找重复元素并输出怎么写啊

如题所述

可以一次读入N个数据。可以考虑以回车结束读入的一组。
参考如下写法:
#include "stdio.h"
#define Max 100
int X[Max]={0,},Y[Max]={0,};

int main()
{
int i=0,j=0;
int a,b;
char c=0;

printf("输入第一个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",X+i++,&c);

c=0;
printf("输入第二个数组(以空格分开,回车结束)");
while((c!='\n'))
scanf("%d%c",Y+j++,&c);

for(a=0;a<i;a++)
for(b=0;b<j;b++)
if(X[a]==Y[b])
printf("%d \t",X[a]);

return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-30
给你思路,用循环逐个读取一个数组中的元素,在与另一个数组中的元素逐个比较追问

main()
{
int a[4],b[4];
int i,j;
for(i=0;i<4;i++)
{
printf("%d:",i);
scanf(" %d",&a[i]);
}
for(j=0;j<4;j++)
{
printf("%d:",j);
scanf(" %d",&b[j]);
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(a[i]==b[j]);

}
printf(" %d",b[i]);
}

getch();

追答

就是这样,不过建议你在输出后加空格这样每个元素就分开了printf("%d ",b[i])

追问

可是这个不对啊

追答

那个你把输出放错位置了#include
int main()
{
int a[4],b[4];
int i,j;
for(i=0;i<4;i++)
{
printf("%d:",i);
scanf(" %d",&a[i]);
}
for(j=0;j<4;j++)
{
printf("%d:",j);
scanf(" %d",&b[j]);
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(a[i]==b[j]);
printf(" %d",a[i]);//在这
}

}
getch();
}

第2个回答  2012-04-30
for(i=0;i<N;i++) for(j=0;j<M;j++) if(a[i]=b[j]) printf("%d\n",&a[i]); 这样行吗?追问

为什么是i<N呢

追答

#define N 10 /*也可以是其他数

#define M 10 /*也可以是其他数
int main ()
{
int a[N]; b[M];
.............
}
望采纳,谢谢

第3个回答  2012-04-30
重复元素是两个数组内的还数组之间相同的元素?
相似回答