集合的运算

简介: 集合的运算

集合的运算

#include <stdio.h>
#include <stdlib.h>
void print(int size, char arr[])
{
  if (size == 0) {
    printf("null");
  }
  for (int i = 0; i < size; i++) {
    printf("%c", arr[i]);
  }
  printf("\n");
}
int main()
{
  char U[] = { 'a','b','c','d','e','f','g','h' };
  char A[] = { 'a','b','c','g' };
  char B[] = { 'd','e','f','g' };
  char C[] = { 'a','c','f' };
  char D[] = { 'f','h' };
  int M = sizeof(A) / sizeof(A[0]);//计算A集合的大小
  int N = sizeof(B) / sizeof(B[0]);//计算B集合的大小
  int P = sizeof(C) / sizeof(C[0]);//计算C集合的大小
  int Q = sizeof(D) / sizeof(D[0]);//计算D集合的大小
  int R = sizeof(U) / sizeof(U[0]);//计算U集合的大小
  char E[100] = { '0' };
  char F[100] = { '0' };
  char G[100] = { '0' };
  char H[100] = { '0' };
  char I[100] = { '0' };
  char J[100] = { '0' };
  char K[100] = { '0' };
  char L[100] = { '0' };
  int size = 0;//标记结果集合的大小
  for (int i = 0; i < M; i++) {
    for (int j = 0; j < N; j++) {
      if (A[i] == B[j]) {
        E[size] = A[i];
        size++;
        break;
      }
    }
  }
  printf("A∩B    :");
  print(size, E);
  int Size = 0;
  for (int i = 0; i < size; i++) {
    int find = 0;
    for (int j = 0; j < P; j++) {
      if (E[i] == C[j]) {
        find = 1;
        break;
      }
    }
    if (find == 0) {
      K[Size] = E[i];
      Size++;
    }
  }
  printf("(A∩B)-C:");
  print(Size, K);
  size = 0;
  for (int i = 0; i < N; i++) {
    for (int j = 0; j < P; j++) {
      for (int k = 0; k < Q; k++) {
        if ((B[i] == C[j]) && (C[j] == D[k]))
        {
          G[size] = B[i];
          size++;
        }
      }
    }
  }
  printf("B∩C∩D  :");
  print(size, G);
  size = 0;
  for (int i = 0; i < N; i++) {
    F[size] = B[i];
    size++;
  }
  for (int i = 0; i < P; i++) {
    int find = 0;
    for (int j = 0; j < N; j++) {
      if (C[i] == B[j]) {
        find = 1;
        break;
      }
    }
    if (find == 0) {
      F[size] = C[i];
      size++;
    }
  }
  printf("B∪C    :");
  print(size, F);
  Size = 0;
  for (int i = 0; i < M; i++) {
    for (int j = 0; j < size; j++) {
      if (A[i] == F[j]) {
        J[Size] = A[i];
        Size++;
      }
    }
  }
  printf("A∩(B∪C):");
  print(Size, J);
  Size = 0;
  for (int i = 0; i < size; i++) {
    L[Size] = F[i];
    Size++;
  }
  for (int i = 0; i < M; i++) {
    int find = 0;
    for (int j = 0; j < size; j++) {
      if (A[i] == F[j]) {
        find = 1;
        break;
      }
    }
    if (find == 0) {
      L[Size] = A[i];
      Size++;
    }
  }
  printf("A∪B∪C  :");
  print(Size, L);
  size = 0;
  for (int i = 0; i < R; i++) {
    int find = 1;
    for (int j = 0; j < M; j++) {
      if (U[i] == A[j]) {
        find = 0;
        break;
      }
    }
    if (find == 1) {
      H[size] = U[i];
      size++;
    }
  }
  printf("A的补集:");
  print(size, H);
  size = 0;
  for (int i = 0; i < P; i++) {
    int find = 0;
    for (int j = 0; j < Q; j++) {
      if (C[i] == D[j]) {
        find = 1;
        break;
      }
    }
    if (find == 0) {
      I[size] = C[i];
      size++;
    }
  }
  printf("C-D    :");
  print(size, I);
  Size = 0;
  return 0;
}


目录
相关文章
|
23天前
|
存储 算法
数据结构学习记录——集合及运算(集合的表示、并查集、树结构表示集合、集合运算、查找函数、并运算)
数据结构学习记录——集合及运算(集合的表示、并查集、树结构表示集合、集合运算、查找函数、并运算)
8 0
|
1月前
|
Python
数组运算
【5月更文挑战第6天】数组运算。
26 1
|
8月前
|
存储 算法 数据处理
数据的表示及运算
一、数据的表示及运算 数据的表示和运算是计算机系统中非常重要的概念,它们决定了计算机如何处理和操作数据。 1. 数据的表示:计算机使用二进制(0和1)来表示和存储数据。二进制是一种只有两个状态的编码方式,可以通过开关电路的开和关来表示0和1。计算机将二进制编码与不同的数据类型关联,例如整数、浮点数、字符等。 2. 整数运算:计算机可以对整数进行基本的算术运算,包括加法、减法、乘法和除法。这些运算是通过电子电路中的逻辑门实现的,逻辑门可以对二进制数进行逻辑运算和移位操作。 3. 浮点数运算:计算机可以进行浮点数的运算,浮点数是一种用于表示带有小数部分的数值的数据类型。浮点数运算涉及到浮点数的表示
60 0
|
1月前
|
算法 前端开发
数组归约运算
数组归约运算
20 0
|
1月前
|
Java C++ Python
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
38 0
C/C++每日一练(20230422) 存在重复元素、组合总和、给表达式添加运算符
|
9月前
第3章 数组与矩阵——3.1 数组运算(2)
第3章 数组与矩阵——3.1 数组运算(2)
|
9月前
|
存储
第3章 数组与矩阵——3.1 数组运算(1)
第3章 数组与矩阵——3.1 数组运算(1)
|
10月前
|
人工智能 算法 搜索推荐
9.1 C++ STL 排序、算数与集合
C++ STL(Standard Template Library)是C++标准库中的一个重要组成部分,提供了丰富的模板函数和容器,用于处理各种数据结构和算法。在STL中,排序、算数和集合算法是常用的功能,可以帮助我们对数据进行排序、统计、查找以及集合操作等。STL提供的这些算法,能够满足各种数据处理和分析的需求。通过灵活使用这些算法,我们可以高效地对数据进行排序、查找和聚合操作,提高代码的性能和可读性。在实际编程中,根据具体问题的需求选择合适的算法,能够更好地发挥STL的优势,提高程序的效率。
34 0
|
人工智能 算法
数组形式的整数加法
数组形式的整数加法
77 0
|
算法 开发者 Python
集合里运算符的使用| 学习笔记
快速学习集合里运算符的使用
82 0
集合里运算符的使用| 学习笔记