/*2.1写一个程序,测试关系是否是自反和对称的*/
//怎么让一个不确定长宽的二维数组做函数的参数???????
#include<stdio.h>
#define N 5
int a[N][N];
//在判断对称时使用
int leijia( int n )
{
int sum=0;
n=n-1;
for( ;n>0;n-- ) sum+=n;
return sum;
}
//自反则返回1,反自反则返回-1,既不自反又不反自反则返回0
int judge_zifan( int n )
{
int i,sum=0,flag=0;
for( i=0;i<n;i++ ){
if( a[i][i]==1 ) sum++;
}
if( sum/n==1 ) flag=1; //即主对角线上全为1
else if( sum==0 ) flag=-1; //即主对角线上全为0
return flag; //即主对角线上有0有1
}
//对称则返回1,反对称则返回-1,既不对称又不反对称则返回0
int judge_duicheng( int n )
{
int i,j,sum=0,flag=0;
for( i=0;i<n;i++ ){
for( j=i+1;j<n;j++ ){
if( a[i][j]==a[j][i]&&a[i][j]==1 ) sum++;
}
}
if( sum==leijia( n )) flag=1; //即关系矩阵关于主对角线对称
else if( sum==0 ) flag=-1; //即关系矩阵上没有任何一个 元素关于主对角线对称
return flag;
}
//判断
离散数学程序实践——判断是否(反)自反,(反)对称,可传递——c
最新推荐文章于 2023-10-08 19:34:33 发布
本文介绍如何使用C语言编写程序,用于判断关系是否具有(反)自反、(反)对称和可传递等性质。作者鼓励读者分享优化代码的建议。
摘要由CSDN通过智能技术生成