Advertisement
Guest User

Untitled

a guest
Oct 21st, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.85 KB | None | 0 0
  1. #include <stdio.h>
  2. #define N 10
  3.  
  4. int input(int a[N][N])
  5. {
  6.     int i, j;
  7.      for (i=0; i<N; i++)
  8.         for (j=0; j<N; j++)
  9.             scanf("%d", &a[i][j]);
  10.     return (a[N][N]);
  11. }
  12.  
  13. int kvadr(int a[N][N], int c[N][N])
  14. {
  15.     int i, j, k;
  16.     for (i=0; i<N; i++)
  17.         for (j=0; i<N; i++)
  18.         {
  19.             c[i][j]=0;
  20.             for (k=0; i<N; i++)
  21.                 c[i][j]+=a[i][k]*a[k][i];
  22.         }
  23.     return 0;
  24. }
  25.  
  26. int vcl(int a[N][N], int b[N][N])
  27. {
  28.     int i=0, j=0, x=0;
  29.     while ((x==0)&&(i<N)&&(j<N))
  30.     {
  31.         if (!((a[i][j]==1)&&(b[i][j]==1))&&(a[i][j]!=0))
  32.             x++;
  33.         i++;
  34.         j++;
  35.     }
  36.     if (x==0)
  37.         return 1;
  38.     else
  39.         return 0;
  40. }
  41.  
  42. int tranz1(int a[N][N], int ctr[N][N])
  43. {
  44.     int i, j, k, x, c2[N][N];
  45.     for (i=0; i<N; i++)
  46.         for (j=0; j<N; j++)
  47.             ctr[i][j]=a[i][j];
  48.     kvadr(ctr, c2);
  49.     x=vcl(c2, ctr);
  50.     while (x!=1)
  51.     {
  52.         for (i=0; i<N; i++)
  53.             for (j=0; j<N; j++)
  54.                 if ((c2[i][j]==1)&&(ctr[i][j]==0))
  55.                     ctr[i][j]=1;
  56.         kvadr(ctr, c2);
  57.         x=vcl(c2, ctr);
  58.     }
  59.     return 0;
  60. }
  61.  
  62. int tranz2(int a[N][N], int ctr[N][N])
  63. {
  64.     int i, j, b[N][N];
  65.     for (i=0; i<N; i++)
  66.         for (j=0; j<N; j++)
  67.             ctr[i][j]=a[i][j];
  68.     kvadr(a, b);
  69.     for (i=3; i<N; i++)
  70.         kvadr(b, b);
  71.     for (i=0; i<N; i++)
  72.         for (j=0; j<N; j++)
  73.     {
  74.         if (b[i][j]!=ctr[i][j])
  75.             ctr[i][j]=1;
  76.     }
  77.     return 0;
  78. }
  79.  
  80. void output(int a[N][N])
  81. {
  82.     int i, j;
  83.      for (i=0; i<N; i++)
  84.      {
  85.         for (j=0; j<N; j++)
  86.             printf("%d", a[i][j]);
  87.         printf("\n");
  88.      }
  89. }
  90.  
  91. int main()
  92. {
  93.     int i, j, a[N][N], b[N][N];
  94.     printf("vvedite matr:\n");
  95.     input(a);
  96.     tranz1(a, b);
  97.     output(b);
  98.     tranz2(a, b);
  99.     output(b);
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement