📄 connection.cpp
字号:
#include<iostream>
using namespace std;
int main()
{
int n,i,j,F1,flag=0;
cout<<"请输入布尔关系矩阵的阶数:"<<endl;
cin>>n;
int * Matrix=new int[n*n];
cout<<"请输入布尔关系矩阵:"<<endl;
for( i=0;i<n;i++)
for( j=0;j<n;j++)
cin>>Matrix[i*n+j];
//判断自反关系
for( i=0;i<n;i++)
if(Matrix[i*n+i]==0)
flag++;
if(flag==n)
{
cout<<"关系矩阵是反自反的但不是自反的"<<endl;
F1=0;
}
else if(flag==0)
{
cout<<"关系矩阵是自反的但不是反自反的"<<endl;
F1=1;
}
else
cout<<"关系矩阵既不是自反的也不是反自反的"<<endl;
//判断对称关系
flag=0;
int flag1=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(Matrix[i*n+j]==Matrix[n*j+i] && (i*n+j)!=(j*n+i))
{
flag++;
if(Matrix[i*n+j]==0)
flag1++;
}
if(flag==0)
cout<<"关系矩阵是反对称的"<<endl;
else if(flag==(n*n-n))
{
if(flag1==(n*n-n))
cout<<"关系矩阵既是对称的又是反对称的"<<endl;
else
cout<<"关系矩阵是对称的"<<endl;
}
else
cout<<"关系矩阵既不是对称的也不是反对称的"<<endl;
//传递判断
flag=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(Matrix[i*n+j]==0)
for(int k=0;k<n;k++)
{
if(Matrix[i*n+k]*Matrix[k*n+j]==1)
{
cout<<"关系矩阵不是可传递的"<<endl;
return 0;
}
}
}
cout<<"关系矩阵是传递的"<<endl;
delete [] Matrix;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -