Другие языки программирования и технологии

Помогите переписать программу

Есть две программы, их нужно писать с использованием функций и динамической памяти. Помогите пожалуйста
http://pastebin.com/Ec4gASVC
http://pastebin.com/JxDd0bV4
#include <stdio.h>
#include <stdlib.h>

int **arr_alloc(int n, int m) {
    int r, c;
    int **a = malloc(n * sizeof(int *));
    for (r = 0; r < n; ++r) a[r] = malloc(m * sizeof(int));
    return a;
}

void arr_input(int **a, int n, int m) {
    int r, c;
    for (r = 0; r < n; ++r) {
        for (c = 0; c < m; ++c) scanf ("%d", &a[r][c]);
    }
}

void arr_remcol(int **a, int n, int *m, int (*pred)(int)) {
    int r, c, cc = 0, y;
    for (c = 0; c < *m; ++c) {
        y = 0;
        for (r = 0; r < n; ++r) if ( pred(a[r][c]) ) ++y;
        if (y != n) {
            for (r = 0; r < n; ++r) a[r][cc] = a[r][c];
            ++cc;
        }
    }
    for (r = 0; r < n; ++r) a[r] = realloc(a[r], cc * sizeof(int));
    *m = cc;
}

void arr_print(int **a, int n, int m, char *fmt) {
    int r, c;
    for (r = 0; r < n; ++r) {
        for (c = 0; c < m; ++c) printf(fmt? fmt : " %d", a[r][c]);
        putchar('\n');
    }
}

void arr_free(int **a, int n) {
    int r;
    for (r = 0; r < n; ++r) free(a[r]);
    free(a);
}

int op(int x) { return x % 10 == 1; }

main() {
    int n, m, **a;
    printf("Enter the size\n");
    scanf("%d %d", &n, &m);
    a = arr_alloc(n, m);
    printf ("Enter the elements\n");
    arr_input(a, n, m);
    printf("Array:\n");
    arr_print(a, n, m, "%""5d");
    arr_remcol(a, n, &m, op);
    printf("Result:\n");
    arr_print(a, n, m, "%""5d");
    arr_free(a, n);
}
ЛД
Лебединский Дмитрий
61 524
Лучший ответ
помочь = написать за тебя?
А чем ты помогаешь другим?
По твоим ответам вижу: Бог тебе поможет!
Юра Озеров
Юра Озеров
58 323
сколько?
Михаил Лебедев А сколько надо?