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

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int N, M, summ, min = 0;
cout << "Введите размер матрицы: \n";
cin >> N >> M;
int** A = new int* [N];
for (int i = 0; i < N; i++)
    A[i] = new int[M];
cout << "Введите значения матрицы: \n";

for (int i = 0; i < N; i++)
    for (int j = 0; j < M; j++) {
        printf("\nA[%d][%d] = ", i, j);
        cin >> A[i][j];
    }

cout << "Вот Ваша матрица:" << endl << endl;
for (int i = 0; i < N; i++)
{
    for (int j = 0; j < M; j++)
        cout << A[i][j] << " ";
    cout << endl;
}
cout << "\nИскомые суммы в столбцах:" << endl;
for (int j = 0; j < M; j++)
{
    summ = 0;
    for (int i = 0; i < N; i++)
    {
        if (A[i][j] >= 0) summ += A[i][j];
    }
    cout << "Cтолбец №" << j + 1 << ": " << summ << endl;
}
}

введите сюда описание изображения

Должно вывести "Минимальный столбец этой суммы: 1"


Ответы (1 шт):

Автор решения: Harry
cout << "\nИскомые суммы в столбцах:" << endl;
int min_idx = 0, min_sum = INT_MAX;
for (int j = 0; j < M; j++)
{
    summ = 0;
    for (int i = 0; i < N; i++)
    {
        if (A[i][j] >= 0) summ += A[i][j];
    }
    if (min_sum > summ) min_idx = j;
    cout << "Cтолбец №" << j + 1 << ": " << summ << endl;
}
cout << "Минимальный столбец этой суммы: " << min_idx << endl;
→ Ссылка