Advertisement
kiraventom

Untitled

Apr 29th, 2023 (edited)
740
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main() {
  4.     int l, c, n, i;
  5.     printf("Enter matrix size: ");
  6.     scanf("%d", &n);
  7.     int** m = (int**)malloc(n * sizeof(int*));
  8.     for (l = 0; l < n; ++l) {
  9.         *(m + l) = (int*)malloc(n * sizeof(int));  
  10.         for (c = 0; c < n; ++c) {
  11.             printf("Enter value at line %d, column %d: ", l, c);
  12.             scanf("%d", (*(m + l) + c));
  13.             printf("\n");
  14.         }
  15.     }
  16.     int* u = (int*)malloc(n * n / 4);
  17.     int fc = l = 0;
  18.     for (; l < n; ++l) {
  19.         for (c = 0; c < n; ++c) {
  20.             for (i = 0; i < fc; ++i)
  21.                 if (*(u + i) == *(*(m + l) + c)) break;
  22.             *(u + fc++) = *(*(m + l) + c);
  23.             if (fc == n * n / 4) l = c = n;
  24.         }
  25.     }
  26.     free(m);
  27.     m = (int**)malloc((n /= 2) * sizeof(int*));
  28.     *m = (int*)malloc(n * sizeof(int));
  29.     for (l = c = i = 0; i < n * n; ++i) {
  30.         *(*(m + c) + l) = *(u + i);
  31.         printf("%3d ", *(*(m + c) + l));
  32.         if (++l != n) continue;
  33.         *(m + ++c) = (int*)malloc(n * sizeof(int));
  34.         l = 0;
  35.         printf("\n");
  36.     }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement