Advertisement
filashkov

Untitled

Nov 15th, 2019
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.71 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <stdlib.h>
  4. int main()
  5. {
  6.     int i, j, n;
  7.     int* temp;
  8.     scanf("%d", &n);
  9.     getchar();
  10.     int* a = (int*)malloc(2 * n * n * sizeof(int));
  11.     int* even = (int*)malloc(n * n * sizeof(int));
  12.     int* odd = (int*)malloc(n * n * sizeof(int));
  13.     n *= 2;
  14.     for (i = 0; i < n / 2; i++)
  15.     {
  16.         for (j = 0; j < n; j++)
  17.         {
  18.             scanf("%d", (a + i * n + j));
  19.         }
  20.         getchar();
  21.     }
  22.     for (i = 0; i < n / 2; i++)
  23.     {
  24.         for (j = 0; j < n; j++)
  25.         {
  26.             if (j % 2 == 0)
  27.             {
  28.                 *(even + i * n + j / 2) = *(a + i * n + j);
  29.             }
  30.             else
  31.             {
  32.                 *(odd + i * n + j / 2) = *(a + i * n + j);
  33.             }
  34.         }
  35.     }
  36.  
  37.     for (i = 0; i < n / 2; i++)
  38.     {
  39.         for (j = 0; j < n / 2; j++)
  40.         {
  41.             if (j >= i)
  42.             {
  43.                 //if ((i != j) || (j - 1 != i))
  44.                 {
  45.                     int t = -*(odd + j * n + i);
  46.                     *(odd + j * n + i) = -*(odd + i * n + j);
  47.                     *(odd + i * n + j) = t;
  48.                     t = *(even + j * n + i);
  49.                     *(even + j * n + i) = *(even + i * n + j);
  50.                     *(even + i * n + j) = t;
  51.                     /*temp = (odd + j * n + i);
  52.                     *(odd + j * n + i) = -*(odd + i * n + j);
  53.                     *(odd + i * n + j) = -*temp;
  54.                     temp = (even + j * n + i);
  55.                     *(even + j * n + i) = *(even + i * n + j);
  56.                     *(even + i * n + j) = *temp;*/
  57.                 }
  58.                 //else
  59.                 {
  60.                     //if (j - 1 == 0)
  61.                     {
  62.                         //*(odd + i * n + j) = -*(odd + i * n + j);
  63.                     }
  64.                 }
  65.             }
  66.         }
  67.     }
  68.  
  69.     for (i = 0; i < n / 2; i++)
  70.     {
  71.         for (j = 0; j < n; j++)
  72.         {
  73.             if (!(j % 2))
  74.             {
  75.                 *(a + i * n + j) = *(even + i * n + j / 2);
  76.             }
  77.             else
  78.             {
  79.                 *(a + i * n + j) = *(odd + i * n + j / 2);
  80.             }
  81.         }
  82.     }
  83.  
  84.     for (i = 0; i < n / 2; i++)
  85.     {
  86.         for (j = 0; j < n; j++)
  87.         {
  88.             printf("%d ", *(a + i * n + j));
  89.         }
  90.         printf("\n");
  91.     }
  92.     return 0;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement