本文主要是介绍c语言,用顺序表的原理合并两个集合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <stdio.h>#include <string.h>
#define N 4
#define M 5
void display(int num[],int count)
{
int i;
for(i=0;i<count;i++)
{
printf("%d ",num[i]);
}
printf("\n");
}
void main()
{
int m,n;//元素个数
int i,j,k=0;
int a[N]={0},b[M]={0},c[M+N]={0};
static int count=0;//用于计算a中跟b中不想等的元素的个数
printf ("请输入集合a内容:\n");
for(i=0;i<N;i++)
{
scanf ("%d",&a[i]);
}
display(a,N);
printf ("请输入集合b内容:\n");
for(j=0;j<M;j++)
{ scanf ("%d",&b[j]);
}
display(b,M);
//printf("下面是并后的数组:\n");
for(i = 0; i < N;i++)
{
//从集合a中取出元素,去遍历集合b中的所有元素
for(j = 0;j < M;j++)
{
//如果相同则跳出遍历
if(a[i]==b[j])
break; }
//判断:此时存在两种情况1) 当前集合a的元素与集合b的元素相同
//2)遍历完了集合b的数组后不存在相同的元素
if(j == M)
{
c[k]=a[i];
k++;
}
}
//把集合b的所有元素存进c中
for(j = 0;j < M;j++)
{
c[k++]=b[j];
}
printf("集合a与集合b的并集为:\n");
display(c,k);
fflush(stdin); //清理缓冲区
getchar();
}
这篇关于c语言,用顺序表的原理合并两个集合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!