📄 guanxi.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 + -