//Warshall算法
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
void main ()
{
int i;
int j;
int count;
int size;
cout << "请输入矩阵的大小:" << endl;
cin >> size;
vector<vector<int> > array (size, vector<int>(size));
ifstream fin ("e://test.txt", ios::in);
if (!fin)
cout << "ERROR!" << endl;
else
{
for (i = 0; i < size; i++)
for (j = 0; j < size; j++)
fin >> array[i][j];
}
fin.close();
for (i = 0; i < size; i++)
{
for (j = 0; j < size; j++)
cout << array[i][j] << ' ';
cout << endl;
}
cout << endl;
for (j = 0; j < size; j++)
for (i = 0; i < size; i++)
{
if (array[i][j] == 1)//如果第i行的元素为1
{
for (count = 0; count < size; count++)//将第i行的元素与第j列的元素进行逻辑加
{
if (array[j][count] == 1 || array[i][count] == 1)
array[i][count] = 1;
}
}
}
for (i = 0; i < size; i++)
{
for (j = 0; j < size; j++)
cout << array[i][j] << ' ';
cout << endl;
}
}