格物学 高中知识点

请问如何用C语言代码实现两个集合的交,并,相对补,对称差的运算并判断两个集合是否相等?

格物自测!为高考,从高一就准备自己的知识点储备!
2024-05-04
请问如何用C语言代码实现两个集合的交,并,相对补,对称差的运算并判断两个集合是否相等?
#include #include #define Ture 1 #define False 0 //输出一个集合对应的计算机编码 voidprint(int arr[]) { int i;
for(i=0;
i<8;
i++) { if(arr[i]) printf("%d",Ture);
else printf("%d",False);
} printf("\n\n");
} //输出集合元素 voidprinting(int arr[]) { int i;
printf("{");
for(i=0;
i<8;
i++) if(arr[i]) printf("%d",arr[i] printf("}\b\n\n");
} //求一个集 voiddifferent(int arr[]) { int i;
printf("A的绝对补集={");
for(i=0;
i<8;
i++) if(!
a printf("%d",i+1);
//输出补集对应的元素项 printf("\b}");
printf("\n\n");
printf("补集对应的计算机编码为:\t");
for(i=0;
i<8;
i++) { if(arr[i]) printf("%d",False);
else printf("%d",Ture } printf("\n\n");
} //输入第二个集合的元素 voidscan(int arr[]) { int i;
while( { scanf("%d",&i);
if(i>=1&&i<=8) arr[i-1]=i;
if(i/以负1为结束标志 break;
} printf("集合B={");
for(i=0;
i<8;
i++) if(arr[i]) print输出补集对应的元素项 printf("\b printf("\n\n");
printf("该集合对应的计算机编码为:\t");
print(arr);
} //求已知两个集合的并集 (int arr[],in { int i,arry[8]={0};
//对数中的元素全部置零 for(i=0;
i<8;
i++) { if(arr[i]!
=0) arry[i]=arr[i];
if(arr1[i]!
=0) arry[i]=ar } // printf("输出俩个集合的并集:\n");
printf("为={");
for(i=0;
i<8;
i++) { if(arry[,说明集合中有该项元素 printf("%d",arry[i]);
} printf("\b}\n\n");
printf("该集合对应的计算机编码为:\t");
print(arry);
} //求两个集合的交集 voidsame(int arr[],int arr1[]) { int j,thesame[8]={0};
for(j=0;
j<8;
j++) if(arr[j]!
=0&&arr1[j]!
=0) thesame[j]=arr[j];
printf("输出俩个集合的交集:\n");
printf("A和B的交集={");
for(j=0;
j<8;
j++) if(thesame[j]) //对应位置不为0,说明集合中有该项元素 printf("%d",thesame[j]);
printf("\b}\n\n");
printf("该集合对应的计算机编码为:\t");
print(thesame);
} //求两个集合的相对补集 voidxdiffer(int arr[],int arr1[]) { int k,xdiffer[8]={0};
for(k=0;
k<8;
k++) if(arr[k]!
=0&&arr1[k]==0) xdiffer[k]=arr[k];
printf("B对A的相对补集为(即A-B):{");
for(k=0;
k<8;
k++) if(xdiffer[k]) //对应位置不为0,说明集合中有该项元素 printf("%d",xdiffer[k]);
printf("\b}\n\n");
printf("对应的计算机编码为:\t");
print(xdiffer);
} void main() { int i,arry[8]={0},arry1[8]={0};
//对数组进行初始化时,先将数组中的元素全部置零 int differ[8]={0},differ1[8]={0};
//定义两个数组,来存放求得的相对补集 printf("输入集合元素:\n");
while(1) { scanf("%d",&i);
if(i>=1&&i<=8) arry[i-1]=i;
if(i==-1) //以负1为结束标志 break;
} printf("集合A={");
for(i=0;
i<8;
i++) if(arry[i]) printf("%d",i+1);
//输出补集对应的元素项 printf("\b}");
printf("\n\n");
printf("该集合对应的计算机编码为:\t");
print(arry);
printf("输出原集合的绝对补集:\t");
different(arry);
printf("输入第二个集合元素:\n");
scan(arry1);
printf("集合A和B的并集");
plus(arry,arry1);
same(arry,arry1);
xdiffer(arry,arry1);
//xdiffer(arry1,arry);
for(i=0;
i<8;
i++) if(arry[i]!
=0&&arry1[i]==0) differ[i]=arry[i];
//printf("B对A的相对补集为(即A-B):");
//printing(differ);
//printf("该集合对应的计算机编码为:\t");
//print(differ);
for(i=0;
i<8;
i++) if(arry[i]==0&&arry1[i]!
=0) differ1[i]=arry1[i];
printf("A对B的相对补集为(即B-A):");
printing(differ1);
printf("该集合对应的计算机编码为:\t");
print(differ1);
printf("集A和B的对称差");
plus(differ,differ1);
} None 内容来自网友回答


不改变关系表中的属性个数但能减少元组个数的是什么运算

补集及其运算

高考倒计时 {dede:global.cfg_gktime/}2024年高考时间 6月7日,8日,9日
高中知识点专业其他问题:
高中知识点
相近专业 历年高考分数 高中知识点 高一 测试 计算机 材料 机械 仪器仪表 能源动力 电气 电子信息 自动化 化工与制药 地质 矿业 纺织 轻工 交通运输 海洋工程 航空航天 兵器 核工程 农业工程 林业工程 环境科学与工程 生物医学工程 食品科学与工程 建筑 安全科学与工程 生物工程 公安技术 网络空间安全 土木 水利 测绘 植物生产 自然保护与环境生态 动物生产 动物医学 林学 水产 草学 基础医学 临床医学 口腔医学 公共卫生与预防医学 中医学 中西医结合 药学 中药学 法医学 医学技术 管理科学与工程 工商管理 农业经济管理 公共管理 图书情报与档案管理 物流管理与工程 工业工程 电子商务 旅游管理 艺术学理论 音乐与舞蹈学 戏剧与影视学 美术学 设计学 哲学 经济学 财政学 金融学 经济与贸易 法学 政治学 社会学 民族学 马克思主义理论 公安学 教育学 体育学 中国语言文学 外国语言文学 新闻传播学 历史学 数学 物理学 化学 天文学 地理科学 大气科学 海洋科学 地球物理学 地质学 生物科学 心理学 统计学 高考试题库 力学