第1个回答 2016-05-14
#include <stdio.h>
int main(void)
{
int a[5],b[5],c[10],j = 0,k = 0,flag ;
int i;
for(i = 0; i < 5; i++)
scanf("%d",&a[i]);
for(i = 0; i < 5; i++)
scanf("%d",&b[i]);
for(i = 0; i < 5 ; i++)
c[k++] = a[i];
for(i = 0; i < 5; i++)
{
flag = 1;
for(j = 0; j < k ;j++)
if(b[i] == a[j])
{
flag = 0;
break;
}
if(flag)
c[k++] = b[i];
}
for(i = 0; i < k ; i++)
printf("%d ",c[i]);
printf("\n");
return 0;
}
追答
追问你好厉害
不过有的我看不懂

我这样有什么错误吗?
追答你的结果怎么样呢,我感觉是对的呀
追问结果是乱码
不是乱码
是这个

本来应该只输出一个1的,现在有5个1,
追答知道你的错误了,你把这两句话用大括号括起来
{
k = a[i];
printf("%d ",k);
}
追问不能加大括号吗?
追答加大括号,感觉你没懂我的意思这样
if(a[i] != c && a[i] != d&&a[i] != e&&a[i] != f&&a[i] != g)
{
k = a[i];
printf("%d ",k);
}
就是if后面加大括号,你没加
懂了没?
追问嗯
追答没懂私信问我
追问
这样是对了嘛?
追答对啊
你看这个就是并集啊,没有重复的
追问就是数与数之间没有空格了
追答printf("%d ",b[j]);输出加一个空格在%d后面
还有那个k输出同理
追问谢谢啦
追答不谢
本回答被提问者采纳
第2个回答 2016-05-14
#include <stdio.h>
int main(void)
{
int arr1[5],arr2[5],array[10]={0};
int i,j;
scanf("%d %d %d %d %d",&arr1[0],&arr1[1],&arr1[2],&arr1[3],&arr1[4]);
scanf("%d %d %d %d %d",&arr2[0],&arr2[1],&arr2[2],&arr2[3],&arr2[4]);
for(i=0;i<5;i++)
{
array[i]=arr1[i];
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(arr2[i]==arr1[j])
break;
if(j==4)
array[i+5]=arr2[i];
}
}
for(i=0;i<10;i++)
{
if(array[i]!=0)
printf("%d ",array[i]);
}
return 0;
}