河北工业大学离散实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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");}

五、运行结果

相关文档
最新文档