⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connection.cpp

📁 这程序是关系性质的判断
💻 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 + -