Advertisement
Guest User

Untitled

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