Предмет: Информатика, автор: Vernard

Помогите пожалуйста написать программу!!! Дан массив из двух тысяч элементов,найти элементы которые представляют собой двузначные числа и выведите их на экран. Числа в массиве от 0 до 2000(числовой диапазон). Из трёхзначных выбрать кратные трём и вывести на экран в порядке убывания. В Паскале помогите пожалуйста!!!!!


MrMiner1: Эти числа вводятся с помощью клавиатуры?

Ответы

Автор ответа: MrMiner1
0

Program n_1;

var i, b, k:integer; a: array [1..2000] of integer;

begin

   writeln('Введите числа');

   for i:=1 to 2000 do read(a[i]);

   writeln;

   writeln ('Числа, состоящие из 2 разрядов:');

   for i:=1 to 2000 do begin

       b:=a[i];

       k:=0;

       while b>0 do

           begin

           b:=b div 10;

           k:=k+1;

       end;

       if k=2 then write(a[i], ' ');

   end;

   writeln;

   writeln ('Числа, состоящие из 3 разрядов и кратные 3:');

   for i:=1 to 2000 do begin

       b:=a[i];

       k:=0;

       while b>0 do

           begin

           b:=b div 10;

           k:=k+1;

       end;

       if k=3 then begin

           b:=(a[i] mod 10) + ((a[i] div 10) mod 10) + ((a[i] div 100) mod 10);

           if (b mod 3) = 0 then write(a[i], ' ');

       end;

   end;

end.


MrMiner1: Секунду, сейчас подправлю
MrMiner1: Program n_1;
var i, b, k, y, j:integer; a, c: array [1..2000] of integer;
begin
y:=1;
... (часть аналогичная старой)
if (b mod 3)=0 then begin
c[y]:=a[i]; y:=y+1;
end;
end;
end;
for i := 1 to y-1 do
for j := 1 to y-i do
if c[j] k:=c[j];
c[j]:= c[j+1];
c[j+1]:=k;
end;
for i:=1 to y-1 do write(c[i], ' ');
end.
MrMiner1: Подправь (я забыл о выводе в порядке убывания)
MrMiner1: Ладно, я ее еще немного оптимизировал. Просто посмотри ответ на 2 версию вопроса
Похожие вопросы
Предмет: Биология, автор: crazywet401