Помогите пожалуйста написать программу!!! Дан массив из двух тысяч элементов,найти...

0 голосов
12 просмотров

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


Информатика (16 баллов) | 12 просмотров
0

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

Дан 1 ответ
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.

(3.5k баллов)
0

Секунду, сейчас подправлю

0

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.

0

Подправь (я забыл о выводе в порядке убывания)

0

Ладно, я ее еще немного оптимизировал. Просто посмотри ответ на 2 версию вопроса