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

📄 guanxi.cpp

📁 该程序为经典的关系算法
💻 CPP
字号:
// guanxi.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "iostream.h"
#define max 100

main()
{
	char ch,A[max];
	int B[max][max],num,i,j,head,tail;
	cout <<"请输入集合A的元素个数:";
	cin >>num;
	cout <<"请输入集合A的元素:";
    for(i=1;i<=num;i++)
	{
		cin >>ch;
		A[i]=ch;
	}
	cout <<endl;
	cout <<"输出集合A的元素:";
	for(i=1;i<=num;i++)
	{
		cout <<i<<A[i]<<" ";
	}
	cout <<endl;
    
	
	for(i=1;i<=num;i++)//初始化矩阵全为0
	{
		for(j=1;j<=num;j++)
			B[i][j]=0;
	}
    cout <<"请输入集合A上的关系R:"<<endl;
	cout <<"请输入弧尾和弧头:"<<endl;
	while(1)
	{
		cin >>tail>>head;
		if(tail==-10000 || head==-10000)
			break;
		else 
			B[tail][head]=1;

	}
    cout <<"关系R的矩阵:"<<endl;
	for(i=1;i<=num;i++)
	{
		for(j=1;j<=num;j++)
			cout <<B[i][j]<<" ";
		cout <<endl;
	}
   

//判断关系的自反性和反自反性
    int onenum=0,zeronum=0;
	for(i=1;i<=num;i++)
	{
		if(B[i][i]==1)
			++onenum;
		else
			++zeronum;
	}
	if(onenum==num)
		cout<<"关系R在集合A上具有自反性"<<endl;
	if(zeronum==num)
		cout<<"关系R在集合A上具有反自反性"<<endl;
	if(onenum>0 && onenum<num)
		cout<<"关系R在集合A上不具有自反性和反自反性"<<endl;

//判断关系的对称性和反对称性
	int flag=0,fl=0;
	for(i=1;i<=num;i++)
	{
		for(j=1;j<=num;j++)
		{			
			if(B[i][j]==B[j][i])
				continue;
			else
			{
				flag=1;
				break;
			}
		}
	}
	for(i=1;i<=num;i++)
	{
		for(j=1;j<=num;j++)
		{			
			if(B[i][j]==0 && B[j][i]==0)
				continue;
			else
				++fl;	
		}
	}

	if(flag==1)
		cout <<"关系R在集合A上具有反对称性"<<endl;
	if(fl==0 && flag==0||fl==num)
        cout <<"关系R在集合A上具有对称性和反对称性"<<endl;
	else
		if(flag==0)
        cout <<"关系R在集合A上具有对称性"<<endl;
	
	return 0;
}



		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -