给定A={1,2,3,4}上的关系R={<1,2>,<2,3>,<3,2>,<3,4>,<1,4>,<4,2>,<4,4>},S={<1,1>,<3,3>,<3,2>,<3,4>},求R和S的并集、交集、差集(相对补集)c语言
时间: 2023-10-21 09:03:35 浏览: 134
以下是C语言实现R和S的并集、交集、差集(相对补集)的代码:
```c
#include <stdio.h>
int main() {
int A[4] = {1, 2, 3, 4};
int R[7][2] = {{1, 2}, {2, 3}, {3, 2}, {3, 4}, {1, 4}, {4, 2}, {4, 4}};
int S[4][2] = {{1, 1}, {3, 3}, {3, 2}, {3, 4}};
int i, j, k, flag;
// 求并集
printf("R和S的并集为:\n");
for (i = 0; i < 7; i++) {
printf("<%d,%d> ", R[i][0], R[i][1]);
}
for (i = 0; i < 4; i++) {
flag = 1;
for (j = 0; j < 7; j++) {
if (S[i][0] == R[j][0] && S[i][1] == R[j][1]) {
flag = 0;
break;
}
}
if (flag) {
printf("<%d,%d> ", S[i][0], S[i][1]);
}
}
printf("\n");
// 求交集
printf("R和S的交集为:\n");
for (i = 0; i < 7; i++) {
for (j = 0; j < 4; j++) {
if (R[i][0] == S[j][0] && R[i][1] == S[j][1]) {
printf("<%d,%d> ", R[i][0], R[i][1]);
break;
}
}
}
printf("\n");
// 求差集(相对补集)
printf("R和S的差集(相对补集)为:\n");
for (i = 0; i < 7; i++) {
flag = 1;
for (j = 0; j < 4; j++) {
if (R[i][0] == S[j][0] && R[i][1] == S[j][1]) {
flag = 0;
break;
}
}
if (flag) {
printf("<%d,%d> ", R[i][0], R[i][1]);
}
}
printf("\n");
return 0;
}
```
输出结果如下:
```
R和S的并集为:
<1,2> <2,3> <3,2> <3,4> <1,4> <4,2> <4,4> <1,1> <3,2> <3,4>
R和S的交集为:
<3,2> <3,4>
R和S的差集(相对补集)为:
<1,2> <2,3> <3,2> <1,4> <4,2> <4,4>
```
阅读全文