传递闭包计算warshall算法C语言实现
2015-12-31 13:23
573 查看
传递闭包计算的warshall算法c语言实现
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #define N 3 #define TRUE 0 int get_matrix(int a ) { int i = 0,j = 0; for (i = 0;i < N;i++) { for (j = 0;j < N;j++) { scanf("%d",&a[i][j]); if (a[i][j] != 0 && a[i][j] != 1) { printf("0 or 1 in matrix\n"); exit(2); } } } return TRUE; } int output_matrix(int a ) { int i = 0,j = 0; for (i = 0;i < N;i++) { for (j = 0;j < N;j++) { printf("%d ",a[i][j]); } putchar('\n'); } return TRUE; } int warshall(int a ) { int col = 0; int line = 0; int temp = 0; for (col = 0;col < N;col++) { for (line = 0;line < N;line++) { if (a[line][col] != 0) { for (temp = 0;temp < N;temp++) { a[line][temp] = a[line][temp] | a[col][temp]; } } } } return TRUE; } int main(void) { int a = {0}; printf("please input a matrix with %d * %d:\n",N,N); if (get_matrix(a)) { printf("get matrix error!\n"); exit(1); } warshall(a); output_matrix(a); return 0; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- Lua和C语言的交互详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法