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

0 голосов

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

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


спросил от Начинающий (316 баллов) в категории Информатика
1 Ответ
0 голосов
ответил от Одаренный (4.6k баллов)

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.

оставил комментарий от Начинающий (316 баллов)

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

оставил комментарий от Начинающий (316 баллов)

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

оставил комментарий от Одаренный (4.6k баллов)

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

оставил комментарий от Одаренный (4.6k баллов)

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

оставил комментарий от Начинающий (316 баллов)

спасибо)

оставил комментарий от Одаренный (4.6k баллов)

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

оставил комментарий от Начинающий (316 баллов)

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

оставил комментарий от Одаренный (4.6k баллов)

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.

...