#include <cstdio>
#include <iostream>
using namespace std;

int A[100][100];
char a[101];

int warshall(int M[100][100],int l)
{
    for (int j = 0; j < l; j++)
        for (int i = 0; i < l; i++)
            if (M[i][j])
                for (int k = 0; k < l; k++)
                    M[i][k] = M[i][k] || M[j][k];
    return 0;
}

int main()
{
    int l = 0, t= 0; //l:矩阵的宽度
    cout << "请输入矩阵(无空格标点)\n";
    do
    {
        cin >> a;
        l = strlen(a);
        for (int i = 0; i < l; i++)
            A[t][i] = a[i] - '0';
        t++;
    } while (t<l);

    warshall(A,l);

    cout << "结果:\n";
    for (int i = 0; i < l; i++)
    {
        for (int j = 0; j < l; j++)
            cout << A[i][j]<<" ";
        cout << "\n";
    }
    return 0;
}
最后修改:2020 年 05 月 04 日 11 : 05 PM