1 #include<stdio.h> 2 void z(); 3 int main() 4 { 5 int a[30][30]; 6 int m,n,i,j,c,b,d; 7 c=d=0,b=0; 8 d=1; 9 while(d) 10 { 11 printf("欢迎使用关系性质判断系统:1,对称关系的判断,2.自反关系的判断 请输入选项:"); 12 scanf("%d",&d); 13 switch(d) 14 { 15 case 1: 16 printf("请输入矩阵的行数"); 17 scanf("%d",&m); 18 printf("请输入矩阵的列数"); 19 scanf("%d",&n); 20 for(i=0;i<m;i++) 21 { 22 for(j=0;j<n;j++) 23 { 24 printf("请输入矩阵关系中第%行第%d列的数字:",i,j); 25 scanf("%d",&a[i][j]); 26 } 27 } 28 printf("关系矩阵M为: "); 29 for(i=0;i<m;i++) 30 { 31 for(j=0;j<n;j++) 32 printf("%d",a[i][j]); 33 printf(" "); 34 } 35 for(i=0;i<m;i++) 36 { 37 for(j=0;j<n;j++) 38 { 39 if(a[i][j]!=a[j][i]) 40 { 41 c=1; 42 break; 43 } 44 } 45 } 46 if(c==0) 47 { 48 for(i=0;i<m;i++) 49 { 50 for(j=0;j<n;j++) 51 { 52 if(a[i][j]==11) 53 { 54 if(a[j][i]!=0) 55 { 56 c=2; 57 break; 58 } 59 } 60 } 61 } 62 if(c==2) 63 printf("该矩阵是对称的 "); 64 else if(c==0) 65 printf("该矩阵既是对称又是反对称的 "); 66 } 67 else if(c==1) 68 { 69 for(i=0;i<m;i++) 70 { 71 for(j=0;j<n;j++) 72 { 73 if(a[i][j]==1) 74 { 75 if(a[j][i]!=0) 76 { 77 c=2; 78 break; 79 } 80 } 81 } 82 } 83 if(c==2) 84 printf("该矩阵不是对称的又不是反对称的 "); 85 else 86 { 87 printf("该矩阵是反对称性的 "); 88 } 89 } 90 break; 91 case 2: 92 z(); 93 break; 94 case 0: 95 break; 96 } 97 printf(" "); 98 printf("是否还继续?是请输入1,否请输入2:"); 99 scanf("%d",&d); 100 printf(" "); 101 } 102 return 0; 103 } 104 void z() 105 { 106 int m,n,i,j,a[80][80],c; 107 c=0; 108 printf("请输入矩阵的行数"); 109 scanf("%d",&m); 110 printf("请输入矩阵的列数"); 111 scanf("%d",&n); 112 for(i=0;i<m;i++) 113 { 114 for(j=0;j<n;j++) 115 { 116 printf("请输入矩阵的第%d行第%d列的数字:",i,j); 117 scanf("%d",a[i][j]); 118 } 119 } 120 printf("关系矩阵M为: "); 121 for(i=0;i<m;i++) 122 { 123 for(j=0;j<n;j++) 124 printf("%d",a[i][j]); 125 printf(" "); 126 } 127 for(i=0;i<m;i++) 128 { 129 if(a[i][i]!=0) 130 { 131 c=1; 132 break; 133 } 134 } 135 if(c==1) 136 printf("该矩阵是自反性的 "); 137 if(c==0) 138 printf("该矩阵是反自反性的 "); 139 }