c++版
#include
#include
#include
void main()
{
int n_dim=0;
cout<<"Input number of dimensions:";
cin>>n_dim;
char **array=new char*[n_dim]; //以下是动态创建一个 n_dim*n_dim 数组,如不太清楚的看我BLOG里的
char ch; //另一篇关于动态数组的文章
for(int i=0;i
array[i]=new char[n_dim]; //这句也是
for(int j=0;j
cin>>ch;
array[i][j]=ch;
}
}
for(i=0;i
array[k][j]='1';
cout<<"The trasitive closure of a relation R represented:"<
for(int j=0;j
}
另一c++
#include
#include
using namespace std;
int **matrix;
void warshall(int n,int **m);
void setValue(int elem1,int elem2,int value);
void buildMatrix(int numElement);
int main()
{
int num;
string str;
cout << "Please input the number of elements:" << endl;
cin >> num;
buildMatrix(num);
cout << "Please input a set,such as R={(x1,x2),(x3,x4),...}: " << endl;
cin >> str;
for(int i=0;i
setValue(str.at(i+1)-'0',str.at(i+3)-'0',1);
warshall(num,matrix);
return 0;
}
void warshall(int n,int **m)
{
int i,j,k;
for(i=0;i
for(k=0;k
for(i=0;i
for(j=0;j
cout << endl;
}
}
void setValue(int elem1,int elem2,int value)
{
if(value>0)
matrix[elem1-1][elem2-1] = value;
}
void buildMatrix(int numElement)
{
int i,j;
matrix = (int**) new int*[numElement];
for(i=0;i
for(j=0;j
}
for(k=0;k<4;k++)
for(i=0;i<4;i++)
for(j=0;j<4;j++)
R[i][j]=R[i][j]||(R[i][k]&&R[k][j]);
a
软件几班的,竟然到这来找答案来了