Прошу проверить уже написанную задачу. Напишите программу, которая в последовательности...

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

Прошу проверить уже написанную задачу. Напишите программу, которая в последовательности натуральных чисел определяет сумму трёхзначных чисел, кратных 4. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число: сумму трёхзначных чисел, кратных 4. Написал, но при в введении любых значений, программа выдаёт 0. Что не так в коде, который представлен ниже? var a,b:integer; begin readln(a); b:=0; while (a<>0) do begin if(a>100) and (a<1000) and (a div 4=0) then b:=b+a; readln(a); end; writeln(b); end.


Информатика (41 баллов) | 109 просмотров
Дан 1 ответ
0 голосов

Program n_1;

var a,b:integer;

begin

   read(a);

   b:=0;

   while (a<>0) do begin

       if(a>=100) and (a<1000) and (<strong>a mod 4=0) then

           b:=b+a;

       read(a);

   end;

   writeln(b);

end.

Исправил. Твои ошибки (уже исправленные) выделены черным.

1. Трехзначные числа не больше ста, а не меньше ста.

2. Операция div - частное от деления, а mod - остаток от деления. Для проверки кратности используется mod.

(3.5k баллов)
0

Спасибо)