Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

дима старков Знаток (424), закрыт 11 лет назад
Условие задачи: Вводят числа (кол-во чисел не более 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.что делать?
Лучший ответ
Alexey N Просветленный (34811) 11 лет назад
У вас кратность неравно 0. А должна быть равна нулю.
Остальное вроде правильно.
дима старковЗнаток (424) 11 лет назад
Спасибо огромное,помогло.Просто ни разу не пользовался этой "кратностью",а тут...
Остальные ответы
Krab Bark Искусственный Интеллект (191672) 11 лет назад
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.
Похожие вопросы