Вычислить значение наименьшего элемента для каждого столбца матрицы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вычислить значение наименьшего элемента для каждого столбца массива N <= 7, M <= 5(массив должен быть реализован через malloc)

Решение задачи: «Вычислить значение наименьшего элемента для каждого столбца матрицы»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
 
int main()
{
  int *a;
  int i, j, n, m;
  system("chcp 1251");
  system("cls");
  printf("Введите количество строк: ");
  scanf("%d", &n);
  printf("Введите количество столбцов: ");
  scanf("%d", &m);
 
  a = (int*) malloc(n*m*sizeof(int));
 
  for(i=0; i<n; i++)
   {
    for(j=0; j<m; j++)
     {
      printf("a[%d][%d] = ", i, j);
      scanf("%d", (a+i*m+j));
     }
   }
 
  for(i=0; i<n; i++)
  {
    for(j=0; j<m; j++)
      {
       printf("%5d ", *(a+i*m+j));
      }
    printf("\n");
  }
 
    int arrMin[m];
    int min = 0;
    for (j = 0; j < m; j++)
    {
        for ( i = 0; i < n; i++)
        {
            if (*(a+min*m+j) > *(a+i*m+j))
            {
                min = i;
            }
        }
        arrMin[m] = *(a+min*m+j);
        printf("%d\n", arrMin[m]);
    }
 
  free(a);
  getchar();   getchar();
  return 0;
}

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

В этом коде:

  1. Объявлены переменные:
    • a - указатель на первый элемент массива, который будет содержать значения элементов матрицы;
    • i, j, n, m - целочисленные переменные, которые будут использоваться для описания строк, столбцов и количества строк и столбцов матрицы.
  2. С помощью функции scanf пользователю предлагается ввести количество строк и столбцов матрицы.
  3. С помощью функции malloc выделяется память под массив a размером n*m*sizeof(int).
  4. В цикле происходит заполнение матрицы значениями. Значения принимаются с клавиатуры.
  5. С помощью двух вложенных циклов происходит вывод значений матрицы на экран.
  6. Объявлен массив arrMin размером m, который будет содержать минимальные значения элементов каждого столбца.
  7. В цикле происходит поиск минимального значения в каждом столбце.
  8. В конце программы выводится на экран массив arrMin, содержащий минимальные значения элементов каждого столбца.
  9. С помощью функции free освобождается память, выделенная под массив a.
  10. С помощью функции getchar считываются символы, нажатые на клавиатуре, чтобы программа могла корректно завершить работу.

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

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