集合运算—并、交、差运算

内容

  1. 已知所给集合 A 和 B,求 A 与 B 的并集 C(C=A∪B)
  2. 已知所给集合 A 和 B,求 A 与 B 的交集 C(C=A∩B)
  3. 已知所给集合 A 和 B,求 A 与 B 的差集 C(C=A-B)
*离散数学中的简单的集合运算,代码由C语言编写,思路非常简单,代码如下:
#include<stdio.h>

int Interection(int a[],int b[],int c[],int M,int N)				//交集运算 
{	
	int i,j,k=0;
	for(i=0;i<M;i++)
	{
		for(j=0;j<N;j++)
		{
			if(b[j]==a[i])
			{
				c[k]=b[j];
				k++;
			}
		}
	}
	return k;
} 

int Union(int a[],int b[],int c[],int M,int N)		//并集运算 
{
	int i,j,k,l,z,x=0;
	for(i=0;i<M;i++)		//将数组a的值赋值给数组c
	{
		c[i]=a[i];
	}

	for(j=0;j<N;j++)		//删去数组a与数组b的重复部分
	{	
		for(k=0;k<M;k++)
		{
			if(a[k]==b[j])
			{
				for(l=j;l<N-1;l++)
				{
					b[l]=b[l+1];
				}
				x++;
			}
		}
	}
	for(z=M;z<M+N;z++)		//将数组b的值赋值给数组c,完成并集功能
	{
		i=0;
		c[z]=b[i];
		i++;
	}
	return x;
}



void printx(int a[],int x)			//打印数组 
{
	int i;
	for(i=0;i<x;i++)
	{
		printf("%d",a[i]);
	}
}

int main()
{
	int n;
	printf("请选择要执行的操作:\n");
	printf("1.并集\t2.交集\t3.差集\t4.退出");
	scanf("%d",&n); 
	int M,N,i;
	printf("请输入第一个数组的个数:\n");
	scanf("%d",&M);
	int a[M];
	printf("请输入第一个数组中的数:\n");
	for(i=0;i<M;i++)
	{
		scanf("%d",&a[i]);
	} 
	printf("请输入第二个数组的个数:\n");
	scanf("%d",&N);
	int b[N];
	printf("请输入第二个数组中的数:\n");
	for(i=0;i<N;i++)
	{
		scanf("%d",&b[i]);
	} 	
	return 0;
}

发布了10 篇原创文章 · 获赞 32 · 访问量 2371

猜你喜欢

转载自blog.csdn.net/qq_34533266/article/details/103426257
今日推荐