离散数学集合运算C++或C语言实验报告

上传人:公**** 文档编号:521579188 上传时间:2023-04-30 格式:DOC 页数:11 大小:163KB
返回 下载 相关 举报
离散数学集合运算C++或C语言实验报告_第1页
第1页 / 共11页
离散数学集合运算C++或C语言实验报告_第2页
第2页 / 共11页
离散数学集合运算C++或C语言实验报告_第3页
第3页 / 共11页
离散数学集合运算C++或C语言实验报告_第4页
第4页 / 共11页
离散数学集合运算C++或C语言实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《离散数学集合运算C++或C语言实验报告》由会员分享,可在线阅读,更多相关《离散数学集合运算C++或C语言实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、离散数学实验报告专业班级:12级计算机本部一班 姓名:鲍佳珍 学号: 201212201401016 实验成绩:1【实验题目】命题逻辑实验四2【实验目的】 掌握用计算机求集合的交、并、差和补运算的方法。3【实验内容】编程实现集合的交、并、差和补运算。4、【实验要求】C或C语言编程实现5. 【算法描述】(1)用数组A,B,C,E表示集合。假定A=1,3,4,5,6,7,9,10,B=2,,3,4,7,8,10, E=1,2,3,4,5,6,7,8,9,10,输入数组A,B,E(全集),输入数据时要求检查数据是否重复(集合中的数据要求不重复),要求集合A,B是集合E的子集。以下每一个运算都要求先将

2、集合C置成空集。(2)二个集合的交运算:AB=x|xA且xB把数组A中元素逐一与数组B中的元素进行比较,将相同的元素放在数组C中,数组C便是集合A和集合B的交。C语言算法:for(i=0;im;i+)for(j=0;jn;j+)if(ai= =bj) ck+=ai;(3)二个集合的并运算:AB=x|xA或xB把数组A中各个元素先保存在数组C中。将数组B中的元素逐一与数组A中的元素进行比较,把不相同的元素添加到数组C中,数组C便是集合A和集合B的并。C语言算法:for(i=0;im;i+)ci=ai;for(i=0;in;i+)for(j=0;jm;j+)if(bi= =cj) break;if

3、(j= =m) cm+k=bi;k+;(4)二个集合的差运算:A-B=x|xA且xB将数组A中的元素逐一与数组B中的元素进行比较,把数组A与数组B不同的元素保存在数组C中,数组C便是集合A和集合B的差A-B。C语言算法:for (j=0;jm;j+)for (i=0;in;i+)if (Aj= =Bi)Ck=Aj;k+;break;if (j= =n) Ck=Ai; k+;(5)集合的补运算: A=B-A=x|xB且xA将数组E中的元素逐一与数组A中的元素进行比较,把不相同的元素保存到数组C中,数组C便是集合A关于集合E的补集。求补集是一种特殊的集合差运算。C语言算法:k=0;for (i=0

4、;iM;i+)for (j=0;jN;j+)if (Bi= =Aj)break; if (j=N)Ck=Bi; k+;6. 【源程序(带注释)】#includeint main()int a80,b80,c80,e80;int m,n,k,l,i,j,p,q,o;l=1;while(l)printf( #欢迎使用集合运算软件#n);printf(#请输入您要输入的A数组内存放的数字的数目:);scanf(%d,&m); /输入一个数组内需要存放的数字的数目printf(#请输入集合A中的元素:);scanf(%d,&a0);for(i=1;im;i+)scanf(%d,&ai);for(j=0

5、;ji;j+)if(ai=aj)printf(#您的输入有误!集合中的元素不能相同!n);printf(#请重新输入:); for(i=0;im;i+)scanf(%d,&ai); /判断数组内是否存在重复的数字,若有,能重新输入printf(#请输入您要输入的B数组内存放的数字的数目:);scanf(%d,&n);printf(#请输入集合B中的元素:);scanf(%d,&b0);for(i=1;in;i+)scanf(%d,&bi);for(j=0;ji;j+)if(bi=bj)printf(#您的输入有误!集合中的元素不能相同!n);printf(#请重新输入:); /重新输入集合Bf

6、or(i=0;in;i+)scanf(%d,&bi);printf(#请输入您要输入的E数组内存放的数字的数目:); /输入B集合的元素数scanf(%d,&o);printf(#请输入集合E中的元素:);scanf(%d,&e0);for(i=1;io;i+)scanf(%d,&ei);for(j=0;ji;j+)if(ei=ej)printf(#您的输入有误!集合中的元素不能相同!n);printf(#请重新输入:); /重新输入集合Efor(i=0;io;i+)scanf(%d,&ei);k=0;for(i=0;im;i+)for(j=0;jn;j+)if(ai=bj)ck+=ai;p=

7、k;printf(#A数组与B数组的交集为);for(k=0;kp;k+)printf(%d ,ck);printf(n); /交集的代码k=0;for(q=0;qp;q+)cq=0; /将C数组置空for(i=0;im;i+)ck=ai;k+; for(i=0;in;i+)for(j=0;jk;j+)if(bi=cj) break;if(j=k-1)ck=bi;k+; /并集的代码p=k; /确定C数组当前的数目,便于下一次置空printf(#A数组与B数组的并集为);for(k=0;kp;k+)printf(%d ,ck);printf(n);k=0;for(q=0;qp;q+)cq=0;

8、for(j=0;jm;j+)for (i=0;in;i+)if (aj=bi)break;if(j=n-1) ck=ai;k+; /差运算的代码p=k;printf(#A数组与B数组的差运算集为);for(k=0;kp;k+)printf(%d ,ck);printf(n);k=0;for(q=0;qp;q+)cq=0;for (i=0;io;i+)for (j=0;jm;j+)if (ei=aj)break; if (j=m-1)ck=ei;k+; /补运算的代码p=k;printf(#A数组与B数组的补运算集为);for(k=0;kp;k+)printf(%d ,ck);printf(nn);printf(#您是否还想继续计算。是请输入1,否请输入0n);scanf(%d,&l); /while语句判断是否继续printf(nn欢迎使用,再见!n);return 0;7 【实验结果与分析总结(含运行结果截图)】输入界面输入各数组并输出结果是否继续查找继续查找,数组重复并重新输入结束使用

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 美容/塑身

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号