C语言,假定集合A和B的元素为自然数。输入两个集合A、B,输出集合A-B,即所有属于A但不属于B的元素,【样例输入】 2 8 3 4 -1 6 1 4 9 -1 【样例输出】 2 8 3
时间: 2024-03-13 14:47:51 浏览: 57
集合的操作,C语言实现的
好的,这是一个集合运算的问题,需要用到C语言中的数组和循环语句。以下是一个简单的实现:
```c
#include <stdio.h>
#define MAX_SIZE 100 // 定义数组最大长度
int main() {
int a[MAX_SIZE], b[MAX_SIZE], c[MAX_SIZE]; // 定义集合A、B、C
int i, j, k;
int flag;
// 输入集合A
printf("请输入集合A,以-1结束:\n");
i = 0;
do {
scanf("%d", &a[i]);
i++;
} while (a[i-1] != -1);
// 输入集合B
printf("请输入集合B,以-1结束:\n");
j = 0;
do {
scanf("%d", &b[j]);
j++;
} while (b[j-1] != -1);
// 遍历集合A,找出所有不属于B的元素
k = 0;
for (i = 0; i < j-1; i++) {
flag = 0; // 标记元素是否属于B
for (j = 0; j < k; j++) {
if (a[i] == c[j]) {
flag = 1;
break;
}
}
if (!flag) {
c[k] = a[i];
k++;
}
}
// 输出集合A-B
printf("集合A-B为:\n");
for (i = 0; i < k; i++) {
printf("%d ", c[i]);
}
printf("\n");
return 0;
}
```
以上代码中,我们使用了三个数组来分别存储集合A、B和A-B。输入时,我们使用do-while循环来读入每个元素,以-1作为输入结束的标志。接着,我们使用两个for循环来遍历集合A和B,找出所有不属于B的元素,将其存入集合C中。最后,我们使用for循环输出集合A-B的元素。
阅读全文