Ввести натуральное число и определить, какие цифры встречаются несколько раз. Пример:...

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

Ввести натуральное
число и определить, какие цифры встречаются несколько раз.

Пример: Введите число >= 0:
2323
Повторяются:
2, 3


Информатика (316 баллов) | 179 просмотров
Дан 1 ответ
0 голосов

Var
  a, c : integer;
  con, rep : array [0..9] of boolean;
begin
  read (a);
  while a > 0 do
  begin
    c := a mod 10;
    a := a div 10;
    if not con[c] then con[c] := true
      else rep[c] := true;
  end;
  for c := 0 to 9 do
    if rep[c] then write (c, ' ');
end.

(4.6k баллов)
0

программа не выполняется...решение должно быть проще+важно наличие защиты от неправильного ввода

0

прошу прощения, выполняется, но это немного не то

0

в каком плане не то?

0

con и rep - произвольные названия переменных, con - от contain и rep - от repeat
хорошо, сейчас переделаю на Integer

0

спасибо)

0

да, что значит защиты от неправильного ввода?

0

при вводе отрицательного числа программа должна повторять ввод

0

var
a, c : integer;
b : array [0..9] of integer;
begin
read (a);
while a < 0 do
begin
writeln ('Введите a >= 0!');
read (a);
end;
while a > 0 do
begin
c := a mod 10;
a := a div 10;
b[c] := b[c] + 1;
end;
for c := 0 to 9 do
if b[c] > 1 then write (c, ' ');
end.