Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
- int l, c, n, i;
- printf("Enter matrix size: ");
- scanf("%d", &n);
- int** m = (int**)malloc(n * sizeof(int*));
- for (l = 0; l < n; ++l) {
- *(m + l) = (int*)malloc(n * sizeof(int));
- for (c = 0; c < n; ++c) {
- printf("Enter value at line %d, column %d: ", l, c);
- scanf("%d", (*(m + l) + c));
- printf("\n");
- }
- }
- int* u = (int*)malloc(n * n / 4);
- int fc = l = 0;
- for (; l < n; ++l) {
- for (c = 0; c < n; ++c) {
- for (i = 0; i < fc; ++i)
- if (*(u + i) == *(*(m + l) + c)) break;
- *(u + fc++) = *(*(m + l) + c);
- if (fc == n * n / 4) l = c = n;
- }
- }
- free(m);
- m = (int**)malloc((n /= 2) * sizeof(int*));
- *m = (int*)malloc(n * sizeof(int));
- for (l = c = i = 0; i < n * n; ++i) {
- *(*(m + c) + l) = *(u + i);
- printf("%3d ", *(*(m + c) + l));
- if (++l != n) continue;
- *(m + ++c) = (int*)malloc(n * sizeof(int));
- l = 0;
- printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement