Паскаль. Программа выдает странные ходы.

интернет Компьютеры программирование Наука pascal

Сравнить сумму строк массива и вывести на экран наибольшую сумму и ряд, где эта сумма получилась.
тестовое задание:
строк 2, рядов 3, заполняется построчно, 1 строка:1 3 2,а 2 строка: 4 7 1.
Интересный факт, что если оставить запись a[i,n+1] , то считает правильно сумму, но выдает нулевой результат k(ряд), а если заменить на a[i,m+1], то выдает правильно ряд, но неправильно сумму. Я сижу и смеюсь, т.к. понять не могу, как такое вообще возможно.
---
program lab12;
var a:array[1..100,1..100] of real;
k,i,j,m,n:integer;
max:real;
begin
writeln('Введите максимальное количество строк и рядов');
read(m,n);
writeln('Введите значения элементов массива');
for i:=1 to m do
for j:=1 to n do read(a[i,j]);
for i:=1 to m do
begin max:=0;
for j:=1 to n do
begin
max:=a[i,j]+max;
a[i,n+1]:=a[i,n+1]+a[i,j];
end;
if max < a[i,n+1]
then begin
max:=a[i,n+1];
k:=i;
end;
end;
writeln('Максимальное значение:',max:6:2); writeln('Ряд:',k:2);
end.
---


Примечание:
Сумму записываю в ячейку n+1, т.к. она не используется и очень удобно в моем случае для отметки ряда
Ответы:
max:=a[i,j]+max;
a[i,n+1]:=a[i,n+1]+a[i,j];
Здесь суммы одинаковые будут. После этого ты сравниваешь их. Разумеется, условие неравенства НИКОГДА не выполняется. Т.к. изначально k:=0, то и результат будет тот же.
Просто убей строку max:=a[i,j]+max; а также max:=0;
Тогда изначально max будет содержать нулевое значение, и условие неравенства сработает. При этом переменной max будет присвоено реально максимальное значение. И так в каждой итерации.


12 лет назад

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

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

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