Сформировать целочисленную матрицу по правилу - C (СИ) (76886)
Формулировка задачи:
Даны целые положительные числа M и N. Сформировать целочисленную матрицу размера M на N, у котрой все элементы J-го столбца имеют значение 5*J (J=1,....,N).
Помогите пожалуйтса!!!!
Решение задачи: «Сформировать целочисленную матрицу по правилу»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(void) { int m, n, **v, i, j; printf("enter m n: "); scanf("%d %d", &m, &n); if (n <= 0 || m <= 0) { fprintf(stderr, "error, invalid input data"); exit(-1); } v = (int**)calloc(m, sizeof(int*)); if (v == NULL) { fprintf(stderr, "memory allocation error"); exit(-2); } for (i = 0; i < m; ++i) { v[i] = (int*)calloc(n, sizeof(int)); if (v[i] == NULL) { fprintf(stderr, "memory allocation error"); exit(-3); } } for (i = 0; i < m; ++i) { for (j = 0; j < n; ++j) { v[i][j] = 5 * (j+1); } } for (i = 0; i < m; ++i) { for (j = 0; j < n; ++j) printf("%3d ", v[i][j]); printf("\n"); } return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
- m, n - вводные значения количества строк и столбцов матрицы соответственно;
- v - указатель на массив указателей, который будет содержать в себе указатели на каждый из подмассивов матрицы.
- Пользователю предлагается ввести количество строк и столбцов матрицы.
- Если пользователь ввёл некорректные значения (м <= 0 || n <= 0), то выводится сообщение об ошибке и программа завершается.
- Выделяется память под массив указателей на int с помощью функции calloc. Если память выделить не удалось, то выводится сообщение об ошибке и программа завершается.
- В цикле формируются подмассивы матрицы. Для каждого подмассива выделяется память под массив int, если память выделить не удалось, то выводится сообщение об ошибке и программа завершается.
- В цикле заполняются значениями элементов матрицы. Каждое значение элементов матрицы равно 5*(j+1), где j - номер столбца элемента.
- В цикле выводятся значения элементов матрицы на экран.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д