#include <stdio.h>

int main() {
    int a[100], b[100], c[100]; // a表示集合A,b表示集合B,c表示差集
    int i, j, k, 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);

    // 求差集
    k = 0;
    for (i = 0; a[i] != -1; i++) {
        flag = 1;
        for (j = 0; b[j] != -1; j++) {
            if (a[i] == b[j]) {
                flag = 0;
                break;
            }
        }
        if (flag == 1) {
            c[k] = a[i];
            k++;
        }
    }
    c[k] = -1;

    // 输出差集
    printf('集合A与集合B的差集为:\n');
    for (i = 0; c[i] != -1; i++) {
        printf('%d ', c[i]);
    }
    printf('\n');

    return 0;
}

代码解析:

  1. 声明数组: 使用三个数组 abc 分别存储集合 A、集合 B 和差集。
  2. 输入集合: 使用 do-while 循环从标准输入接收集合 A 和集合 B 的元素,以 -1 作为输入结束标志。
  3. 计算差集: 遍历集合 A 中的每个元素,并在集合 B 中查找是否有相同的元素。如果找到相同的元素,则标记 flag 为 0,否则标记为 1。如果 flag 为 1,则将该元素添加到差集数组 c 中。
  4. 输出差集: 使用 for 循环遍历差集数组 c,并将其中的元素输出到标准输出。

使用示例:

假设集合 A 为 {1, 2, 3, 4},集合 B 为 {2, 4, 5},则程序输出的差集为 {1, 3}。

总结:

本文提供了一个使用 C 语言实现集合差集的代码示例。该程序通过遍历两个集合并比较元素,最终得到差集结果。希望本文能够帮助您理解集合差集的计算过程,并使用 C 语言实现相应的程序。


原文地址: https://www.cveoy.top/t/topic/oQYR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录