用c语言实现集合的并交和差运算
时间: 2023-06-12 17:03:26 浏览: 151
c语言实现集合并交差
3星 · 编辑精心推荐
以下是用C语言实现集合的并交和差运算的示例代码:
```c
#include <stdio.h>
int main()
{
int setA[100], setB[100], setC[100], setD[100];
int n, m, i, j, k;
// 输入集合A
printf("Enter the number of elements in setA: ");
scanf("%d", &n);
printf("Enter the elements of setA: ");
for(i=0; i<n; i++)
scanf("%d", &setA[i]);
// 输入集合B
printf("Enter the number of elements in setB: ");
scanf("%d", &m);
printf("Enter the elements of setB: ");
for(i=0; i<m; i++)
scanf("%d", &setB[i]);
// 求并集
k = 0;
for(i=0; i<n; i++)
{
setC[k] = setA[i];
k++;
}
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
if(setB[i] == setA[j])
break;
}
if(j == n)
{
setC[k] = setB[i];
k++;
}
}
// 求交集
k = 0;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
if(setA[i] == setB[j])
{
setD[k] = setA[i];
k++;
}
}
}
// 求差集
k = 0;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
if(setA[i] == setB[j])
break;
}
if(j == m)
{
setD[k] = setA[i];
k++;
}
}
// 输出结果
printf("\nUnion of setA and setB is: ");
for(i=0; i<k; i++)
printf("%d ", setC[i]);
printf("\nIntersection of setA and setB is: ");
for(i=0; i<k; i++)
printf("%d ", setD[i]);
printf("\nDifference of setA and setB is: ");
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
if(setA[i] == setB[j])
break;
}
if(j == m)
printf("%d ", setA[i]);
}
return 0;
}
```
在这个示例中,我们定义了4个数组:setA、setB、setC、setD,分别用于存储输入的两个集合、它们的并集、交集和差集。
首先,我们从用户输入中读取集合A和集合B。然后,我们使用两个循环来计算它们的并集。对于每个元素,我们将其添加到setC数组中,除非它已经存在于集合A中。我们使用另外两个循环来计算集合的交集和差集。对于交集,我们在两个集合中查找共同的元素,并将它们添加到setD数组中。对于差集,我们在集合A中查找不在集合B中的元素,并将它们添加到setD数组中。
最后,我们输出计算结果。注意,这个示例只适用于元素类型为整数的集合。对于其他类型的集合,您需要相应地修改代码。
阅读全文