Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define SIZE 24
  4.  
  5. void swape(int *a, int *b);
  6.  
  7. void solve (int n, int m, int a[SIZE][SIZE])
  8. {
  9.  
  10.     int p1 = -1, p2 = -1;
  11.  
  12.     int flag = 0;
  13.  
  14.     int cnt = 0;
  15.  
  16.     for (int * i = *a;
  17.             i < *(a + n);
  18.             i += SIZE)
  19.     {
  20.  
  21.         if (flag)
  22.             break;
  23.  
  24.         for (int * j = i;
  25.                 j < i + m;
  26.                 j++)
  27.         {
  28.  
  29.             if ((i - *a)/SIZE == (j - i))
  30.                 break;
  31.  
  32.             if (*j >
  33.                     0)
  34.                 cnt++;
  35.  
  36.             if(cnt == 1)
  37.             {
  38.  
  39.                 p1 = (i - *a)/SIZE;
  40.  
  41.             }
  42.  
  43.             else if (cnt == 4
  44.                     )
  45.             {
  46.  
  47.                 p2 = (i - *a)/SIZE;
  48.  
  49.                 flag = 1;
  50.  
  51.                 break;
  52.  
  53.             }
  54.  
  55.         }
  56.  
  57.     }
  58.  
  59.     if ((p1 >
  60.             = 0) && (p2 >
  61.                      = 0) && (p1 != p2))
  62.         for(int * i = *(a + p1), * j = *(a + p2);
  63.                 (i < *(a + p1)+m && j < *(a +
  64.                                           p2)+m);
  65.                 i++, j++)
  66.             swape(i, j);
  67.  
  68. }
  69.  
  70. void swape(int *a, int *b)
  71. {
  72.  
  73.     *a ^= *b;
  74.  
  75.     *b ^= *a;
  76.  
  77.     *a ^= *b;
  78.  
  79. }
  80.  
  81. int main()
  82. {
  83.  
  84.     int n, m;
  85.  
  86.     printf("Enter the matrix size:\n");
  87.  
  88.     scanf("%d%d", &n, &m);
  89.  
  90.     int a[SIZE][SIZE];
  91.  
  92.     printf("Enter the elements of matrix %ix%i:\n", n, m);
  93.  
  94.     for(int * i = *a;
  95.             i < *(a + n);
  96.             i+=SIZE)
  97.     {
  98.  
  99.         for(int * j = i;
  100.                 j < i + m;
  101.                 j++)
  102.             scanf("%d", j);
  103.  
  104.     }
  105.  
  106.     solve(n, m, a);
  107.     printf("\nEdited matrix:\n");
  108.  
  109.     for (int * i = *a;
  110.             i < *(a + n);
  111.             i += SIZE)
  112.     {
  113.  
  114.         for (int * j = i;
  115.                 j < i + m;
  116.                 j++)
  117.             printf("%d ", *j);
  118.  
  119.         printf("\n");
  120.  
  121.     }
  122.  
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement