内容
已知所给集合 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 ;
}