Найти строку матрицы с наибольшей и наименьшей суммой элементов - 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; }
Объяснение кода листинга программы
В данном коде реализован алгоритм поиска строк матрицы с наибольшей и наименьшей суммой элементов.
- Сначала пользователю предлагается ввести количество строк и столбцов матрицы.
- Затем происходит выделение памяти под матрицу и заполнение её элементами.
- Далее происходит поиск строк с наибольшей и наименьшей суммой элементов. Для этого используется два указателя, один из которых начинает с 0, а другой с 1. В каждой итерации суммируются элементы текущей строки и проверяется, является ли эта строка строкой с наибольшей или наименьшей суммой. Если да, то обновляются соответствующие индексы.
- После завершения поиска выводятся индексы найденных строк и их суммы.
- Затем происходит освобождение выделенной памяти.
- В конце программы возвращается 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д