Сформировать матрицу, у которой в каждом столбце содержатся все числа из исходного набора - C (СИ)
Формулировка задачи:
Даны целые положительные числа M, N и набор из M чисел. Сформировать матрицу размера M × N, у которой в каждом столбце содержатся все числа из исходного набора (в том же порядке).
Решение задачи: «Сформировать матрицу, у которой в каждом столбце содержатся все числа из исходного набора»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { int **p = NULL; int i, j, N, M; puts("Input matrix size:"); puts("Quantity rows:"); scanf("%d", &N); puts("Quantity columns:"); scanf("%d", &M); p = (int**)malloc(N * sizeof(int*)); for(i = 0; i < N; i++) p[i] = (int*)malloc((M * sizeof(int))); for(i = 0; i < N; i++){ for(j = 0; j < M; j++){ p[i][j] = i; printf("%d ", p[i][j]); } printf("\n"); } for(i = 0; i < N; i++) free(p[i]); free(p); return 0; }
Объяснение кода листинга программы
В этом коде:
- p = NULL; Инициализируется двумерный массив для работы с размерами строк и столбцов.
- puts(
Input matrix size:
); Выводится приглашение для ввода размеров матрицы. - scanf(
%d
, &N); Считывается количество строк матрицы. - scanf(
%d
, &M); Считывается количество столбцов матрицы. - p = (int)malloc(N sizeof(int));** Выделяется память под массив указателей на строки матрицы.
- for(i = 0; i < N; i++) Инициализируются указатели на строки матрицы.
- p[i] = (int)malloc((M sizeof(int))); Выделяется память под строки матрицы.
- for(i = 0; i < N; i++){ Инициализируются значения элементов матрицы.
- for(j = 0; j < M; j++){ Заполняются значения элементов матрицы.
- p[i][j] = i; Значению элемента присваивается значение индекса строки.
- printf(
%d
, p[i][j]); Выводится значение элемента матрицы. - printf(
\n
); Переносится строка. - for(i = 0; i < N; i++) Освобождается память под строками матрицы.
- free(p); Освобождается память под матрицей.
- return 0; Завершается работа программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д