Задача на С++; Массивы;

Компьютеры программирование windows математика С++

Найти максимальную сумму среди сумм тех столбцов квадратичного целочисленно двумерного массива диагональный элемент которых положителен.
Массив уже есть:
{ 1, 2, 3, 4},
{ 0, 7, 8, 9},
{-1,-3,-4,-5},
{-7,-8,-9,13},
Пример кода тоже(показываю только сам цикл, т.к. с ним же и проблемы):
for (j=i;i<n;i++) // перебор диагональных элементов
{ if(a[i][j]>0) // проверка на "положительность"
for (j=0;j<n;j++) //перебор элементов по столбцам
z+=a[i][j]; } // присвоение суммы столбца элементу

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


Примечание:
for(j=0,i=0;i<n;i++,j++)
if (a[i][j]>0)
{for(s=0;s<n;s++)
k+=a[s][j];}

Теперь вроде выполняет, только всё равно не пойму куда тут надо сравнение воткнуть...

Примечание:
Код сравнени:
{if(k<z)
k=z;
z=0;}
Куда его?

Примечание:
Моя ваша благодарить.
Ответы:
во-первых, код не идет по диагональным элементам - j не обновляется с изменением i
во-вторых, последний цикл идет у вас по столбцам строки i, а надо наоборот.
ЗЫ: и используйте отдельный счетчик для столбцов а то слишком buggy code.
У Вас написано нечто, что, например, мой мозг воспринимать не хочет :)
Алгоритм решения простой - проходите цикл от 0 до (n - 1), т.е. все столбцы. Если диагональный эл-т положителен, то вычисляете сумму столбца. Затем сравниваете эту сумму с предыдущей (либо сразу записываете результат, если это первый такой столбец) и, если предыдущая сумма меньше, то перезаписываете результат. Собственно, все.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.