当前位置: 代码迷 >> C语言 >> 回复:将两个数组中的元素放入另一数组中,且删除相同元素
  详细解决方案

回复:将两个数组中的元素放入另一数组中,且删除相同元素

热度:92   发布时间:2006-03-12 19:49:00.0
回复:将两个数组中的元素放入另一数组中,且删除相同元素

一时找不到回复哪个帖了,所以新发表一个帖。
原题是:
将两个数组中的元素放入另一数组中,且删除相同元素
比如:
int a[5]={2,3,1,5,4};
int b[4]={4,6,5,3};

怎么样才能使另一个数组c[]存放a[]、b[]中所有元素,且将相同元素删除呢???
即c[6]={2.3.1.5.4.6}

我写的一个程序,供参考!
#include <stdio.h>
#define MAX 50
int main()
{
int a[MAX],b[MAX],c[2*MAX],i,k,j;
int m,n;
printf("输入数组a的元素个数n=");
scanf("%d",&n);
printf("输入数组a的元素:");
for (i=0;i<n;i++)
scanf("%d",&a[i]);
printf("输入数组b的元素个数m=");
scanf("%d",&m);
printf("输入数组b的元素:");
for (i=0;i<m;i++)
scanf("%d",&b[i]);
printf("合并后的数组c元素为:");

for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
{
if(a[i]==c[j]) break;
}
if(i==j) c[j]=a[i];
}
k=j+1; //k为当前数组c的元素个数

for(i=0;i<m;i++)
{
for(j=0;j<k;j++)
{
if(b[i]==c[j]) break;
}
if(j==k)
{
c[j]=b[i];
k++;
}
}

for(i=0;i<k;i++) //k为当前数组c的元素个数
printf("%d ",c[i]);
printf("\n");
return 0; //注:数组C的最终结果未进行排序!
}

搜索更多相关的解决方案: 元素放入  int  删除  scanf  

----------------解决方案--------------------------------------------------------
不错 不过应该还可以优化算法
----------------解决方案--------------------------------------------------------
可以了
----------------解决方案--------------------------------------------------------
  相关解决方案