Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define N 10
- int input(int a[N][N])
- {
- int i, j;
- for (i=0; i<N; i++)
- for (j=0; j<N; j++)
- scanf("%d", &a[i][j]);
- return (a[N][N]);
- }
- int kvadr(int a[N][N], int c[N][N])
- {
- int i, j, k;
- for (i=0; i<N; i++)
- for (j=0; i<N; i++)
- {
- c[i][j]=0;
- for (k=0; i<N; i++)
- c[i][j]+=a[i][k]*a[k][i];
- }
- return 0;
- }
- int vcl(int a[N][N], int b[N][N])
- {
- int i=0, j=0, x=0;
- while ((x==0)&&(i<N)&&(j<N))
- {
- if (!((a[i][j]==1)&&(b[i][j]==1))&&(a[i][j]!=0))
- x++;
- i++;
- j++;
- }
- if (x==0)
- return 1;
- else
- return 0;
- }
- int tranz1(int a[N][N], int ctr[N][N])
- {
- int i, j, k, x, c2[N][N];
- for (i=0; i<N; i++)
- for (j=0; j<N; j++)
- ctr[i][j]=a[i][j];
- kvadr(ctr, c2);
- x=vcl(c2, ctr);
- while (x!=1)
- {
- for (i=0; i<N; i++)
- for (j=0; j<N; j++)
- if ((c2[i][j]==1)&&(ctr[i][j]==0))
- ctr[i][j]=1;
- kvadr(ctr, c2);
- x=vcl(c2, ctr);
- }
- return 0;
- }
- int tranz2(int a[N][N], int ctr[N][N])
- {
- int i, j, b[N][N];
- for (i=0; i<N; i++)
- for (j=0; j<N; j++)
- ctr[i][j]=a[i][j];
- kvadr(a, b);
- for (i=3; i<N; i++)
- kvadr(b, b);
- for (i=0; i<N; i++)
- for (j=0; j<N; j++)
- {
- if (b[i][j]!=ctr[i][j])
- ctr[i][j]=1;
- }
- return 0;
- }
- void output(int a[N][N])
- {
- int i, j;
- for (i=0; i<N; i++)
- {
- for (j=0; j<N; j++)
- printf("%d", a[i][j]);
- printf("\n");
- }
- }
- int main()
- {
- int i, j, a[N][N], b[N][N];
- printf("vvedite matr:\n");
- input(a);
- tranz1(a, b);
- output(b);
- tranz2(a, b);
- output(b);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement