Ошибка с оператором "else"
Моя задача найти в последовательности сумму чисел кратных 6 и оканчивающихся на 4. Кол-во элементов в последовательности не известно, но их не может быть больше 1000. Если напечатал 0 - цикл прекращается. Вот мой нерабочий код.
var sum, num : integer;
begin
writeln('Ввод чисел последовательности');
for var i:=1 to 1001 do
begin
readln(num);
if (num = 0) then //Ввод числа 0 останавливает ввод чисел последовательности
break
else //Если число не 0
if (num / 6 = 0) and (num mod 10 = 4) then //Проверка достоверности основного условия
sum := sum + num; //Если так, то добавляем это число к сумме
end;
writeln('Сумма:');
writeln(sum)
end.
Я полностью уверен, что моя проблема в else. Как я ни крутил, то вылезала ошибка (Встречено "else", а ожидался оператор). Сейчас ошибки нет, но программа все равно работает неправильно:
Ввод чисел последовательности
24
981
54
0
Сумма:
0
Можно ли исправить ошибку с else и как нибудь улучшить цикл?
Ответы (1 шт):
Выражение num / 6 = 0 может иметь только один вариант, когда оно будет выполняться - это num=0, но до этого даже не доходит.)
Используйте тоже mod, как в выражении рядом.
if (num mod 6 = 0) and (num mod 10 = 4) then
И еще у вас не задано начальное значение sum.