离散实验二

  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 }
原文地址:https://www.cnblogs.com/Zblogs/p/3372852.html