用c语言写一个warshall算法
时间: 2023-05-13 14:05:33 浏览: 96
好的,以下是用 C 语言实现 Warshall 算法的代码:
```c
#include <stdio.h>
#define MAX_VERTICES 100
int n; // 图中顶点的数量
int adj[MAX_VERTICES][MAX_VERTICES]; // 图的邻接矩阵
void warshall() {
int i, j, k;
for (k = 0; k < n; k++) {
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
adj[i][j] = adj[i][j] || (adj[i][k] && adj[k][j]);
}
}
}
}
int main() {
int i, j;
printf("请输入图中顶点的数量:");
scanf("%d", &n);
printf("请输入图的邻接矩阵:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &adj[i][j]);
}
}
warshall();
printf("Warshall 算法的结果是:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", adj[i][j]);
}
printf("\n");
}
return 0;
}
```
希望这个代码能够帮助你!
阅读全文