c语言编程: 输入两个数组,每个数组不超过10个元素,将只在一个数组中出现的数全部输出。

如题所述

#include "stdio.h"
main()
{
int i,j,sign;
int a[10],b[10];
printf("请输入第1组10个数\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("请输入第2组10个数\n");
for(i=0;i<10;i++)
scanf("%d",&b[i]);
printf("未重复的是:\n");
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(a[i]==b[j]) sign=1;
}
if(sign!=1)printf("%3d",a[i]);
sign=0;
}
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
if(b[i]==a[j]) sign=1;
}
if(sign!=1)printf("%3d",b[i]);
sign=0;
}
printf("\n");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-15
意思就是A数组中的数B数组没有呗...
代码要自己写才有有意思
双层for循环 把A[i]元素 和每个B元素if一下 设定一个计数器 如果对比10次计数器都没增加
则输出A[i]元素.. 然后计数器归零 再进入外部循环... 如此反复10次
然后再把A和B兑换下 再来一次上面的就能把B的元素输出了..
第2个回答  2012-11-15
不难吧

int main()
{
int a[10], b[10], i, j, m, n;
scanf("%d%d", &m, &n);
for (i = 0; i < m; i++)
{
scanf("%d", &a[i]);
}
for (i = 0; i < n; i++)
{
scanf("%d", &b[i]);
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if (a[i] == b[j])
{
break;
}
}
if (j == n)
{
printf("%d ", a[i]);
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
if (b[i] == a[j])
{
break;
}
}
if (j == m)
{
printf("%d ", b[i]);
}
}
return 0;
}本回答被网友采纳
相似回答