• в чем ошибка: program gadanie;
    var a:array[1..1000] of integer;
    n,s,i: integer;
    begin
    readln(n);
    s:=0;
    for i:=1 to 1000 do
    if n mod a[i] = 0 then s:=s+a[i];
    writeln(s);
    end.

    question img

Ответы 1

  • Что касается ошибок, то в условии сказано, что введенное число n находится в диапазоне [1; 1000], то есть, программа не должна высчитывать сумму, если пользователь ввел  число, не входящее в этот диапазон. А вы вместо этого создали массив, с которым еще и вычисления проводите, хотя сами в него не занесли ни одного значения.

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

    var

      n, sum: integer;

       

    begin

       

      write('Введите число: ');

      readln(n);

       

      if ((n >= 1) and (n <= 1000)) then

      begin

         for var i := 1 to n do

         begin

            if (n mod i = 0) then

               sum := sum + i;

         end;

         

         write('Сумма всех натуральных чисел: ', sum);

      end

       

      else

         write('Ошибка ввода! Число должно быть в диапазоне [1; 1000]');

       

    end.

    answer img
    • Автор:

      noel
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

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

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

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