• Прошу проверить уже написанную задачу.
    Напишите программу, которая в последовательности
    натуральных чисел определяет сумму трёхзначных чисел, кратных 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.

Ответы 3

  • Спасибо)
    • Автор:

      caiden294
    • 6 лет назад
    • 0
  • https://znanija.com/task/31644694
  • Program n_1;

    var a,b:integer;

    begin

       read(a);

       b:=0;

       while (a<>0) do begin

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

               b:=b+a;

           read(a);

       end;

       writeln(b);

    end.

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

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

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

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years