Дана прямоугольная матрица. Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов. Оговорюсь сразу, что использовать супер умные функции не нужно. Так как преподаватель попросит объяснить каждую букву)))
В этой программе мы сначала считываем размер матрицы, а затем ее элементы. Далее, идет двойной цикл, где мы вычисляем сумму элементов каждой строки и сравниваем с максимальной и минимальной суммами. Если текущая сумма больше максимальной или меньше минимальной, мы обновляем значения максимальной и минимальной сумм и сохраняем индекс строки. В конце выводим индексы строк и суммы элементов.
int sum(int* str, int n) //функция для вычисления суммы строки
{
int summ = 0; //начальное значение суммы
while (n--) summ += *str++; //суммирование n элементов строки
//тоже самое что и for(int i=0;i> m >> n; //ввод размеров
//создание матрицы в виде динамического двухмерного массива
int** matrix = new int* [m]; //первая размерность - указатель на строки
for (int i = 0; i < m; i++) matrix = new int[n]; //вторая - выделение памяти для каждой строки
//заполнение матрицы
for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) cin >> matrix[j];
//переменные для хранения индекса и суммы минимальной и максимальной строк
int sum_min, ind_min=0, sum_max, ind_max=0;
//начальные минимальные и максимальные значения устанавливаем относительно первой строки
sum_min = sum_max = sum(matrix[0], n);
//проходимся по строкам и уточняем максимальные и минимальные значения
for (int i = 1; i < m; i++)
{
int tmp = sum(matrix, n); //вычисление суммы текущей строки
if (tmp > sum_max) { sum_max = tmp; ind_max = i; } //уточнение максимальных значений
if (tmp < sum_min) { sum_min = tmp; ind_min = i; } //уточнение минимальных значений
}
С динамической рандомной матрицей целочисленных элементов из диапазона [a;b]: #include
#include
#include
#include
#include
using namespace std;
int main()
{
int a, b, c, l, m, n, s = 0, mini, maxi;
vector Min, Max;
cout > a >> b >> n;
c = b - a + 1;
srand(time(NULL));
int **A = new int *[n];
for (l = 0; l < n; ++l)
{
A[l] = new int [n];
for (m = 0; m < n; ++m)
{
A[l][m] = rand() % c + a;
cout