Сформировать матрицу, у которой в каждом столбце содержатся все числа из исходного набора - 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;
}

Объяснение кода листинга программы

В этом коде:

  1. p = NULL; Инициализируется двумерный массив для работы с размерами строк и столбцов.
  2. puts(Input matrix size:); Выводится приглашение для ввода размеров матрицы.
  3. scanf(%d, &N); Считывается количество строк матрицы.
  4. scanf(%d, &M); Считывается количество столбцов матрицы.
  5. p = (int)malloc(N sizeof(int));** Выделяется память под массив указателей на строки матрицы.
  6. for(i = 0; i < N; i++) Инициализируются указатели на строки матрицы.
  7. p[i] = (int)malloc((M sizeof(int))); Выделяется память под строки матрицы.
  8. for(i = 0; i < N; i++){ Инициализируются значения элементов матрицы.
  9. for(j = 0; j < M; j++){ Заполняются значения элементов матрицы.
  10. p[i][j] = i; Значению элемента присваивается значение индекса строки.
  11. printf(%d, p[i][j]); Выводится значение элемента матрицы.
  12. printf(\n); Переносится строка.
  13. for(i = 0; i < N; i++) Освобождается память под строками матрицы.
  14. free(p); Освобождается память под матрицей.
  15. return 0; Завершается работа программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы