Вопрос задан 17.07.2023 в 17:50. Предмет Информатика. Спрашивает Климов Данил.

Помогите, не могу понять, что когда считывается n, то же самое значение получает и число i var n,

v, s, i, ma, k : integer; begin ma := 0; read(n); for i := 1 to n do; read(v, s); if (v > ma) and (s = 1) then begin ma := v; k := i; end; if ma <> 0 then write(i) else write('-1'); end.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Клип Арина.

Ответ:

for i := 1 to n do;

это цикл с пустым оператором ";" этот цикл проходит n раз и увеличивает i до значения n

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Похоже, у вас есть небольшая ошибка в вашем коде. Ошибка связана с неправильным расположением точки с запятой (;) после оператора цикла for. Она приводит к тому, что операторы read(v, s); и условные операторы не связаны с циклом и выполняются только один раз после окончания цикла.

Вот исправленный код:

pascal
var n, v, s, i, ma, k : integer; begin ma := 0; read(n); for i := 1 to n do begin read(v, s); if (v > ma) and (s = 1) then begin ma := v; k := i; end; end; if ma <> 0 then write(k) else write('-1'); end.

Изменилась только строка for i := 1 to n do;, где я удалил точку с запятой после do. Это позволяет выполнить операторы read(v, s); и условные операторы для каждой итерации цикла. Теперь код должен правильно считывать n, а затем n пар значений v и s, после чего определит и выведет значение i, удовлетворяющее условиям (v > ma) and (s = 1) или -1, если такого значения i не найдется.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос