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.自反关系的判断\n\n请输入选项:");
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为:\n");
29 for(i=0;i<m;i++)
30 {
31 for(j=0;j<n;j++)
32 printf("%d",a[i][j]);
33 printf("\n");
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("该矩阵是对称的\n");
64 else if(c==0)
65 printf("该矩阵既是对称又是反对称的\n");
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("该矩阵不是对称的又不是反对称的\n");
85 else
86 {
87 printf("该矩阵是反对称性的\n");
88 }
89 }
90 break;
91 case 2:
92 z();
93 break;
94 case 0:
95 break;
96 }
97 printf("\n");
98 printf("是否还继续?是请输入1,否请输入2:");
99 scanf("%d",&d);
100 printf("\n\n");
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为:\n");
121 for(i=0;i<m;i++)
122 {
123 for(j=0;j<n;j++)
124 printf("%d",a[i][j]);
125 printf("\n");
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("该矩阵是自反性的\n");
137 if(c==0)
138 printf("该矩阵是反自反性的\n");
139 }