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

0 голосов
26 просмотров

Найдите ошибку в программе. она нужна, чтобы в последовательности чисел, находить четные числа, кратные трем. и выдавать количество этих чисел
program abc;
var col, a : integer;
BEGIN
col:=0;
readln (a);
if ((a<>0) and (a mod 3=0) and (a mod 2 =0)) then
col:=col+1;
if a<>0 then
begin
while a<>0 do
readln (a);
if (a mod 3=0) and (a mod 2 =0) then
col:=col+1;
end;
writeln ('количество ',col);
end.


Информатика (492 баллов) | 26 просмотров
0

Программа работает же

0

работает, но некорректно. Я уже сам справился. Там после While надо было бегин и энд вводить.

Дан 1 ответ
0 голосов
Правильный ответ

Программа рабочая, скорее всего ты просто вводил элементы в строчку, а у тебя стоит в чтении переход на новую строку(окончание LN), и паскаль просто не видел никакие числа, кроме первого.
И очень муторный и непонятный код, я переписал немножко:

var
  col, a: integer;

begin
  col := 0;Read(a);
  while a <> 0 do
  begin
    read(a);
    if (a mod 3 = 0) and (a mod 2 = 0) then
      col := col + 1;
  end;
  writeln('количество ', col);
end.

Пример:
6 12 9 36 0
количество 3


(8.8k баллов)
0

Да, правда я забыл указать, что количество чисел не дано, и когда вводится 0, последовательность заканчивается

0

Ну, у меня не вводится количество чисел...

0

ну там по любому цикл while должен быть

0

а все заметил