Top.Mail.Ru
Ответы

Подскажите-что делаю не так? (Паскаль)

Условие задачи: Вводят числа (кол-во чисел не более 1000,а числа не более 30000),в конце программа должна вывести число-кол-во введенных чесел, которые меньше 500 и кратные 3,если вводят ноль, то программа должна остановиться, показать результат. ноль как число не засчитывается.
Вот мое решение:
var
Dat: array[1..1000] of integer;
k, number:integer;
begin
number:=0;
for k:=1 to 1000 do begin
readln(Dat[k]);
if(Dat[k]>30000) then writeln ('не верное число')
else begin
if(Dat[k]<500)and(Dat[k] mod 3<>0)and(Dat[k]<>0) then
number:=number+1;
if(Dat[k]=0) then break;
end;
end;
writeln(number);
end.

но на выходе все время дает 1.что делать?

По дате
По рейтингу
Аватар пользователя
Ученик
13лет

У вас кратность неравно 0. А должна быть равна нулю.
Остальное вроде правильно.

Аватар пользователя
Ученик
13лет

Спасибо огромное,помогло.Просто ни разу не пользовался этой "кратностью",а тут...

Аватар пользователя
Гений
13лет

var k,n:integer;
begin
n:=0; repeat read(k); if(k< 500)and(k div 3=0)then inc(n) until k=0;
writeln(n-1); readln; readln
end.



Видео по теме