#include #include #include int intInp() { int tmp; scanf("%d", &tmp); return tmp; } void create(int** q, int k, int l) { int i; q = (int**)malloc(k * sizeof(int*)); for (i = 0; i < k; ++i) { q[i] = (int*)malloc(l * sizeof(int)); } } void vvvod (int** q, int k, int l, int x) { int i, j; for (i = 0; i < k; i++) { printf("Строка %d\n", i); for (j = 0; j < l; j++) { printf("\tСтолбец %d: ", j); while (scanf("%d", &x) != 1 || x < -1 || x > 1) { printf("Ошибка ввода\n"); while (getchar() != '\n') {} } q[i][j] = x; } } } void vivod(int** q, int k, int l, int x) { int i, j; for (i = 0; i < k; ++i) { for (j = 0; j < l; ++j) { printf("\t%d", q[i][j]); } printf("\n\n\n"); } } int main() { setlocale(LC_CTYPE, "rus"); int x, i, y, z, j, k, l, tmp, cntr_r = 0, cntr_c = 0, ** q; x = y = q = 0; printf("Введите количество строк "); k = intInp(); printf("Введите количество столбцов "); l = intInp(); printf("Введите количество строк в 0 подматрице "); scanf("%d", &y); /* while (scanf("%d", &y) != (y <= k && y <= l && y != 0)) { printf("Ошибка ввода\n"); while (getchar() != '\n') {} } */ // ф-ия 1 для созданние массива create(q, k, l); // ф-ия 2 для ввода массива vvvod(q, k, l, x); // ф-ия 3 для вывода массива vivod(q, k, l, x); return 0; for (i = 0; i < k; i++) free(q[i]); free(q); }