集合的并,交,差以及它们的混合运算的算法(c语言)

2025-02-23 12:34:22
推荐回答(2个)
回答1:

/* diff.c:差运算 */
#include 
#include 
int set_a[5] = {1, 3 ,5 ,9, 7}; // 非 0 元素构成的集合
int set_b[5] = {1, 5, 2 ,8, 4};
int set_c[10] ={0};
int isin(int a_or_b, int elem)
{
    int *set_tmp;
    int cnt;
    switch(a_or_b) 
    {
        case 1:
            set_tmp = set_b;
            break;
        case 2:
            set_tmp = set_a;
            break;
        default:
            printf ( "parameter error!\n" );
    }
    for (cnt = 0; cnt < 5; cnt++) 
    {
        if(set_tmp[cnt] == elem)
        {
            return 1;
        }
    }
    return 0;
}
int main(int argc, char *argv[])
{
    int cnt, cnt2 = 0;
    for (cnt = 0; cnt < 5; cnt++)
    {
        if(isin(1, set_a[cnt]) == 1) // 如果  集合 a 中的元素在集合 b 中
        {
            set_c[cnt2++] = set_a[cnt];
        }
    }
    printf ( "The result of diff: \n" );
    for(cnt = 0; set_c[cnt] != 0; cnt++) // 输出非 0 元素 
    {
        printf ( "%d\t", set_c[cnt] );
    }
    putchar('\n');
    return 0;
}

亲是要这样做差运算吗?

回答2:

你是说&&,||吗?