內容
- 已知所給集合 A 和 B,求 A 與 B 的並集 C(C=A∪B)
- 已知所給集合 A 和 B,求 A 與 B 的交集 C(C=A∩B)
- 已知所給集合 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++)
{
c[i]=a[i];
}
for(j=0;j<N;j++)
{
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++)
{
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;
}