河北工业大学离散实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
离散数学实验报告
学院:计算机科学与软件学院
班级:
姓名:
学号:
实验二关系闭包计算
一.目的与要求:
熟悉Warshall算法,掌握求关系的自反闭包、对称闭包和传递闭包的方法。
二 .实验内容:
从键盘输入一个关系的关系矩阵,计算其自反闭包、对称闭包和传递闭包,计算传递闭包时使用Warshall算法。用C语言实现。
三.实验步骤:
1.输入关系矩阵
2.计算自反闭包、对称闭包、传递闭包。
3. 输出结果;
四.源程序:
1./*求自反闭包*/
#include ""
#include""
int main()
{
int x,y,ii; *对称闭包的运算*/
#include ""
#define N 3
void main()
{
int a[N][N];
int i,j,jj;
printf("请输入关系矩阵。");
for(i=0;i for(j=0;j scanf("%d",&a[i][j]); printf("你输入的关系矩阵为\n"); for(i=0;i {for(j=0;j printf("%3d",a[i][j]); printf("\n");} printf("\n"); /*求对称闭包*/ for(j=0;j if(a[i][j]==1) { for(jj=0;jj a[i][jj]=a[i][jj]||a[j][jj]; } /*输出矩阵*/ printf("对称闭包为:\n"); for(i=0;i { for(j=0;j printf("%3d",a[i][j]); printf("\n"); } printf("\n"); } 3./*传递闭包的运算*/ #include "" #define N 3 void main() { int a[N][N]; int i,j,jj; printf("请输入关系矩阵。"); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); printf("你输入的关系矩阵为\n"); for(i=0;i {for(j=0;j printf("%3d",a[i][j]); printf("\n");} printf("\n"); /*求传递闭包*/ for(j=0;j for(i=0;i { for(jj=0;jj a[i][jj]=a[i][jj]||a[j][jj]; } /*输出矩阵*/ printf("传递闭包为:\n"); for(i=0;i { for(j=0;j printf("%3d",a[i][j]); printf("\n"); } printf("\n");} 五、运行结果