离散数学的商集用C语言写
时间: 2023-11-23 16:02:30 浏览: 30
由于商集是离散数学中的概念,无法直接用C语言实现。但是,我们可以利用C语言中的数组和循环结构来模拟商集的概念。
假设我们要实现一个集合A和集合B的商集(A/B),其中A和B都是由整数构成的集合。我们可以先定义两个数组来表示A和B:
```c
int A[] = {1, 2, 3, 4, 5};
int B[] = {2, 4};
```
然后,我们可以定义一个数组来表示商集:
```c
int AB[10] = {0}; // 假设A和B的元素个数不超过10个
```
接下来,我们可以使用两个嵌套的循环来遍历A和B,并将A中不属于B的元素加入到商集中:
```c
int i, j, k = 0;
for (i = 0; i < sizeof(A)/sizeof(int); i++) {
for (j = 0; j < sizeof(B)/sizeof(int); j++) {
if (A[i] == B[j]) {
break; // 如果A中的元素在B中出现过,则跳过
}
}
if (j == sizeof(B)/sizeof(int)) {
// 如果A中的元素不在B中出现过,则加入到商集中
AB[k++] = A[i];
}
}
```
最终,AB数组中就存储了A/B的元素。完整代码如下:
```c
#include <stdio.h>
int main() {
int A[] = {1, 2, 3, 4, 5};
int B[] = {2, 4};
int AB[10] = {0};
int i, j, k = 0;
for (i = 0; i < sizeof(A)/sizeof(int); i++) {
for (j = 0; j < sizeof(B)/sizeof(int); j++) {
if (A[i] == B[j]) {
break;
}
}
if (j == sizeof(B)/sizeof(int)) {
AB[k++] = A[i];
}
}
printf("A/B = {");
for (i = 0; i < k; i++) {
printf("%d, ", AB[i]);
}
printf("}\n");
return 0;
}
```