用C语言编写一个能完成集合的交、并和差运算的程序。要求: (1)集合的元素限定为英文小写字母。(2)用数组表示集合
时间: 2024-05-10 21:18:07 浏览: 109
以下是使用C语言编写的完成集合交、并和差运算的程序,其中集合的元素限定为英文小写字母,用数组表示集合:
```c
#include <stdio.h>
#define SIZE 26 // 集合大小为26,表示26个英文小写字母
void print_set(int set[]) {
printf("{ ");
for (int i = 0; i < SIZE; i++) {
if (set[i]) {
printf("%c ", i + 'a'); // 将数字转换为对应的小写字母
}
}
printf("}\n");
}
void union_set(int set1[], int set2[], int result[]) {
for (int i = 0; i < SIZE; i++) {
result[i] = set1[i] || set2[i]; // 取并集
}
}
void intersect_set(int set1[], int set2[], int result[]) {
for (int i = 0; i < SIZE; i++) {
result[i] = set1[i] && set2[i]; // 取交集
}
}
void diff_set(int set1[], int set2[], int result[]) {
for (int i = 0; i < SIZE; i++) {
result[i] = set1[i] && !set2[i]; // 取差集
}
}
int main() {
int set1[SIZE] = {0}; // 初始化为全0,表示空集
int set2[SIZE] = {0};
int result[SIZE] = {0};
set1['a' - 'a'] = 1; // 添加元素a到集合1中
set1['b' - 'a'] = 1; // 添加元素b到集合1中
set1['c' - 'a'] = 1; // 添加元素c到集合1中
set2['b' - 'a'] = 1; // 添加元素b到集合2中
set2['d' - 'a'] = 1; // 添加元素d到集合2中
set2['e' - 'a'] = 1; // 添加元素e到集合2中
printf("集合1: ");
print_set(set1);
printf("集合2: ");
print_set(set2);
union_set(set1, set2, result);
printf("集合1和集合2的并集: ");
print_set(result);
intersect_set(set1, set2, result);
printf("集合1和集合2的交集: ");
print_set(result);
diff_set(set1, set2, result);
printf("集合1和集合2的差集: ");
print_set(result);
return 0;
}
```
该程序输出结果为:
```
集合1: { a b c }
集合2: { b d e }
集合1和集合2的并集: { a b c d e }
集合1和集合2的交集: { b }
集合1和集合2的差集: { a c }
```
阅读全文