Посмотрите внимательно на minSum
. Вы явно не инициализируете его перед использованием в этом тесте:
if (sum < minSum)
Поэтому, если вы запускаете отладочную сборку и она инициализируется нулем, она никогда не изменится, если сумма не будет <0. </p>
Обратите внимание, что ссылка на неинициализированное значение является неопределенным поведением, чего следует избегать любой ценой.
Попробуйте ввести все числа как отрицательные.
Попробуйте установить значение INT_MAX и повторите попытку. Обратите внимание, что это правильное решение проблемы.
Как еще одно редакционное замечание, вероятно, не стоит изменять размеры массива. Как заявлено в main()
m
- 50 на 50. Но вы фактически просматриваете его как 3 на 3 в findRowWithMinimalSum()
. Это не очень хорошая привычка, я могу в значительной степени гарантировать, что это вызовет у вас проблемы в будущем.
Наконец, найдите себе отладчик. Это выскочило бы прямо с экрана, если бы вы пошагово проходили через findRowWithMinimalSum()
, наблюдая, как переменные меняются по мере продвижения программы.