Найти строку матрицы с наибольшей и наименьшей суммой элементов - C (СИ) (73945)

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

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

Дана прямоугольная матрица. Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов. Пожалуйста))

Решение задачи: «Найти строку матрицы с наибольшей и наименьшей суммой элементов»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char **argv)
{
    int n, m, i, j, **a;
    int min_index = 0, min_summ = 0; 
    int max_index = 0, max_summ = 0;
    printf("Введите количество строк:"); scanf("%i", &n);
    printf("Введите количество столбцов:"); scanf("%i", &m);
    a = (int**)calloc(sizeof(int*), n);
    for (i = 0; i < n; i++)
        a[i] = (int*)calloc(sizeof(int), m);
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
        {
            printf("a[%i][%i]:", i, j);
            scanf("%i", &a[i][j]);
        }
    printf("Массив:\n");
    for (i = 0; i < m; i++) { max_summ += a[0][i]; printf("%i ", a[0][i]); }
    min_summ = max_summ;
    printf("\n");
    for (i = 1; i < n; i++)
    {
        int summ = 0;
        for (j = 0; j < m; j++) { summ += a[i][j]; printf("%i ", a[i][j]); }
        printf("\n");
        if (summ > max_summ) { max_summ = summ; max_index = i; }
        if (summ < min_summ) { min_summ = summ; min_index = i; }
    }
    printf("\nНаименьшая строка: %i (%i)\nНаибольшая строка: %i (%i)\n", min_index+1, min_summ, max_index+1, max_summ);
    for (i = 0; i < n; i++)
        free(a[i]);
    free(a);
    return 0;
}

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

В данном коде реализован алгоритм поиска строк матрицы с наибольшей и наименьшей суммой элементов.

  1. Сначала пользователю предлагается ввести количество строк и столбцов матрицы.
  2. Затем происходит выделение памяти под матрицу и заполнение её элементами.
  3. Далее происходит поиск строк с наибольшей и наименьшей суммой элементов. Для этого используется два указателя, один из которых начинает с 0, а другой с 1. В каждой итерации суммируются элементы текущей строки и проверяется, является ли эта строка строкой с наибольшей или наименьшей суммой. Если да, то обновляются соответствующие индексы.
  4. После завершения поиска выводятся индексы найденных строк и их суммы.
  5. Затем происходит освобождение выделенной памяти.
  6. В конце программы возвращается 0, что означает успешное завершение работы программы.

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


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

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

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