交并补

/*(1)任务描述
编写程序实现两个集合的并、交,相对补,对称差的运算并判断两个集合是否相等?
(2)功能要求
①输入集合A与集合B的元素。
②输出集合A与B的并、交、相对补、差、对称差运算。
③输出集合A与B是否相等的断定结果。
④输出集合A与B的幂集。
*/

#include <stdio.h>
#include <stdio.h>
int main()
{
    int jiaoji(int*A,int*B,int lenA,int lenB)
    {
        int i,j;
        int flag,index=0,len=lenA>lenB?lenA:lenB;
        int*buffer=(int*)malloc(sizeo(int)*len);
        for(i=0;i<lenA;i++)
        {
            flag=0;
            for(j=0;j<lenB;j++)
            {
                if(A[i]==B[j])
                {
                    flag=1;
                }
            }
            for(j=0;j<index;j++)
            {
                if(A[i]==buffer[j])
                {
                    flag=0;
                }
            }
            if(flag){buffer[index]=A[i];
            index++;
            }
             }
             printf("交集:{");
             for(i=0;i<index;i++){
                printf("%d",buffer[i]);
             }
             printf("}\n");
             return 0;
}
int bingji(int*A,int*B,int lenA,int lenB)
                {
                    int i,j,flag,index=lenB;
                    int*buffer=(int*)malloc(sizeof(int)*(lenA+lenB));
                    for(i=0;i<lenB;i++){
                        buffer[i]=B[i];
                    }
                    for(i=0;i<lenB;i++)
                    {
                        buffer[i]=B[i];
                    }
                    for(i=0;i<lenA;i++){
                        flag=1;
                        for(j=0;j<lenB;j++){
                            if(A[i]==B[j]){
                                flag=0;
                            }
                        }
                        if(flag){
                            buffer[index]=A[i]);
                            index++;
                        }
                    }
                    printf("并集:{");
                    for(i=0;i<index;i++){
                        printf("%d",buffer[i]);
                    }
                    printf("}\n");
                    return 0;

                }
int xiangduibu(int*A,int*B,int lenA,int lebA);
               {
                   int i,j;
                   int flag,index=0;
                   int*buffer=(int*)malloc(sizeof(int)*lenA);
                   for(i=0;i<lenA;i++){
                    flag=1;
                    for(j=0;j<lenB;j++){
                        if(A[i]==B[j]){
                            flag=0;
                        }
                    }
                    if(flag){
                        buffer[index]=A[i];
                        index++;
                    }

                   }
                   if (flag){
                    buffer[index]=A[i];
                    index++;
                   }
               }
               printf("相对补:{");
               for(i=0;i<index;i++){
                prtintf("%d",buffer[i]);
               }
               printf("}\n");
               return 0;
            }
            int duichencha(int*A,int*B,int lenA,int lenB)
            {
                int i,j;
                int flag,index=0;
                int *buffer=(int*)malloc(sizeof(int)*lenA);
                for(i=0;i<lenA;i++){
                    flag=1;
                    for(j=0;j<lenB;j++){
                        if(A[i]==B[j]){
                            flag=0;
                        }
                    }
                    if(flag){
                        buffer[index]=A[i];
                        index++;
                    }
                }
                for(i=0;i<lenB;i++){
                    flag=1;
                    for(j=0;j<lenA;j++){
                        if(B[i]==A[j]){
                            flag=0;
                        }
                    }
                    if(flag){
                        buffer[index]=B[i];
                        index++;
                    }

                }
                printf("对称差:{");
                for(i=0;i<index;i++){
                    printf("%d",buffer[i]);
                }
                printf("}\n");
                return 0;
                }
                for(i=0;i<len;i++){
                for(j=i+1;j<lenA;j++}{
                if(A[i]<A[j]){
                temp=A[i];
                A[i]=A[j];
                A[j]=temp;
                }
                }
           }
           for(i=0;i<lenB;i++){
           for(j=i+1;j<lenB;j++){
           if(B[i]<B[j]){
           temp=B[i];
           B[i]=B[j];
           B[j]=temp;
        }
    }
    for(i=0;i<len;i++){
    if(A[i]!=B[i]{
       printf("\n与B不相等\n");
       return 0;
       }
    }
    printf("相等\n");
    return 0;
           }
 int shu(int n)
 {
     int oup=1;
     int i;
     if(n==0){
     return 1;}
 }
    for(i=0;i<n;i++){
    oup=oup*2;
    }
    return oup;
    }
    int sum=0;
    int i;
    for(i=0;i<n;i++){
    sum+=shu(i);
    }
    return sum;
    }
int jisuan(int*buffer,int len)
{
    int i;
    for(i=0;i<len;i++){
    if(buffer[i]==2){
    buffer[i]=0;
    buffer[i+1]+=1;
}
    }
}
int shuchu(int*A,int*buffer,int len)
{
    int i;
    printf("{");
    for(i=0;i<=len;i++){
    if(bufer[i]==1){
    printf("%d",A[i]);

    }
    }
    printf("}");

}
int miji(int*A,int lenA)
{
    int i,j;
    int*buffer=(int*)malloc(sizeof(int)*lenA);
    for(i=0;i<len;i++){
    buffer[i]=0;


    }
    for(i=0;i<shusum(len);i++){
    buffer[0]+=1;
    jisuan(buffer,lenA);
    shuchu(A,buffer,len);
    }

    }
    int main()
    {
        int*A,*B;
        int lenA;lenB;
        int i;
        printf("输入A,B的元素个数:\n");
        scanf("%d,%d",&lenA,&lenB);
          A=(int*)malloc(sizeof(int)*lenA);
          B=(int*)malloc(sizeof(int)*lenB);
          printf("输入A的元素:");
          for(i=0;i<len;i++){
          scanf("%d",&A[i]);

          }
          getchar();
          printf("输入B的元素:");
          for(i=0;i<lenB;i++){
          scanf("%d",&B[i]);


          }
    xiangdeng(A,B,lenA,lenB);
    jiaoji(A,B,lenA,lenB);
    bingji(A,B,lenA,lenB);
    printf("A对B的");
    xiangduibu(A,B,lenA,lenB);
    printf("B对A的");
    xiangduibu(B,A,lenA,lenB);
    duichencha(A,B,lenA,lenB);
        printf("A的幂集:");
        miji(A,lenA);
        printf("{空集}\n");
        printf("B的幂集:");
        miji(B,lenB);
        printf("{空集}\n");
        syetem("pause");
        return 0;
    }







        

    













                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值