请用C语言编写以下程序:两个集合的差集定义如下: 集合A、B的差集,由所有属于A但不属于B的元素构成。 输入两个集合A、B,每个集合中元素都是自然数。求集合A、B的差集。
时间: 2024-04-30 20:18:03 浏览: 128
以下是用C语言编写的程序:
```c
#include <stdio.h>
int main()
{
int A[100], B[100], C[100]; // 定义三个数组,A、B为输入的集合,C为差集
int m, n, k = 0, flag; // m、n分别为集合A、B的元素个数,k为差集C的元素个数,flag用于判断元素是否属于B集合
printf("请输入集合A的元素个数:");
scanf("%d", &m);
printf("请输入集合A的元素:");
for (int i = 0; i < m; i++)
{
scanf("%d", &A[i]);
}
printf("请输入集合B的元素个数:");
scanf("%d", &n);
printf("请输入集合B的元素:");
for (int i = 0; i < n; i++)
{
scanf("%d", &B[i]);
}
for (int i = 0; i < m; i++) // 遍历集合A中的元素
{
flag = 0; // flag初始化为0
for (int j = 0; j < n; j++) // 遍历集合B中的元素
{
if (A[i] == B[j]) // 如果A集合中的元素在B集合中出现,则标记为1
{
flag = 1;
break;
}
}
if (flag == 0) // 如果该元素不在B集合中出现,则加入差集C中
{
C[k++] = A[i];
}
}
printf("集合A、B的差集为:");
for (int i = 0; i < k; i++)
{
printf("%d ", C[i]);
}
printf("\n");
return 0;
}
```
注意,上述程序中只考虑了A集合中的元素是否在B集合中出现,如果B集合中有一些元素不在A集合中出现,也应该加入差集中。如果需要考虑这种情况,可以再增加一个循环来遍历集合B中的元素是否在集合A中出现。
阅读全文