集合的并、交运算求大佬帮忙

设计一个能够实现两个集合的并和交运算的程序。

要求:集合中的元素限定为英文字母和阿拉伯数字,集合中不允许出现重复元素,集合元素在输入时以“#”为结束标志。用两个单链表A和B分别来表示两个集合。

 

先分别定义两个数组,往数组里面输入数据,如果是#号就结束输入,并集就是将两个数组结合起来输出,交集就是循环两数组,相同的元素输出来

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int a[5],b[5],c[10],d[10],x,y,z;
    printf("请输入5个A集合数据,空格隔开,回车结束\n:");
    for(x=0;x<5;x++){
    	scanf("%d",&a[x]);
    	
    }
    fflush(stdin);
    printf("请输入5个B集合数据,空格隔开,回车结束\n:");
    for(y=0;y<5;y++){
    	scanf("%d",&b[y]);
    	
    }
    
    printf("集合A的元素有\n");
    for(x=0;x<5;x++){
    	printf("%3d",a[x]);
    }
    
     printf("\n集合B的元素有\n");
    for(y=0;y<5;y++){
    	printf("%3d",b[y]);
    }
    
    //并集
    for(z=0;z<10;z++){
    	if(z<=4){
    		c[z]=a[z];
    	}else{
    		c[z]=b[z-5];
    	}
    }
    
    printf("\nA和B的并集:\n");
    for(z=0;z<10;z++){
    	printf("%3d",c[z]);
    }
    
    //交集
    z=0;
    for(x=0;x<5;x++){
    	for(y=0;y<5;y++){
    		if(a[x]==b[y]){
    			d[z]=a[x];
    			z++;
    			break;
    		}
    	}
    }
    
    
    printf("\nA和B的交集:\n");
    for(x=0;x<z;x++){
    	printf("%3d",d[x]);
    }
    
}

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632