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();

}






评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值