Вопрос задан 21.06.2023 в 09:50. Предмет Информатика. Спрашивает Алексей Сёмкин.

Задача: Дано N чисел. Необходимо найти сумму чисел, которые меньше N, написать такую программу на

паскале, я написал вот такой код: var a: array[1..10] of integer; n,c,i:integer; begin readln(n); for i:=1 to n do begin read(a[i]); end; c:=0; for i:= 1 to n do if a[i] < n then c:= a[i]+c; writeln(c); end. Проблема в том, что нужно что бы все вводимые числа были неотрицательные, целые и меньше 1001, как это сделать?
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Пигарева Ксения.

Можно при вводе фильтровать что вводится, если число не удовлетворяет требованиям оно игнорируется

var a: array[1..10] of integer;

n,c,i:integer;

inp : real;

begin

   readln(n);

   i:=1;

   repeat

       readln(inp);

       c := round(inp);

       if (inp = c) and (inp >= 0.0) and (inp <1001.0) then

           begin

               a[i]:= c;

               i:=i+1;

           end;

   until(i=n+1);

   

   c:=0;

   for i:= 1 to n do

       if a[i] < n then

           c:= a[i]+c;

   writeln(c);

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи можно добавить несколько проверок в код, чтобы гарантировать, что все вводимые числа соответствуют условиям (неотрицательные, целые и меньше 1001).

Вот обновленный код:

var a: array[1..10] of integer; n, c, i: integer; begin readln(n); for i := 1 to n do begin read(a[i]); // Проверка на неотрицательность числа while a[i] < 0 do begin writeln('Введите неотрицательное число'); read(a[i]); end; // Проверка на целочисленность числа while frac(a[i]) <> 0 do begin writeln('Введите целое число'); read(a[i]); end; // Проверка на максимальное значение числа while a[i] >= 1001 do begin writeln('Введите число, меньшее 1001'); read(a[i]); end; end; c := 0; for i := 1 to n do begin if a[i] < n then c := c + a[i]; end; writeln(c); end.

Теперь программа будет запрашивать ввод числа до тех пор, пока не будет введено число, которое соответствует всем условиям (неотрицательное, целое и меньше 1001).

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос