编辑代码

#include <stdio.h>
#include "windows.h"

#define MaxVertex 6     // 规定矩阵最大可存多少个结点

#define INF 210000000
#define N 4


void floyd(int matrix[N][N], int n) {
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < n; ++j)
            for (int k = 0; k < n; ++k)
                matrix[j][k] = min(matrix[i][k]+matrix[j][i],matrix[j][k]);
}

int main() {
    int matrix[N][N] = {{0,   1, INF, INF},
                        {4,   0, INF, 5},
                        {INF, 2, 0,   INF},
                        {3, INF, 7,   0}};

    floyd(matrix, N);

    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < N; ++j)
            printf("%d ", matrix[i][j]);
        putchar('\n');
    }
}