Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры.
пример:
1234 1224
нет. да.
Вот мое решение.
var a,b,c: integer;
begin
writeln('Введите целое число');
read(a);
while a<>0 do begin
b:=a mod 10;
a:=a div 10;
if c=b then begin
writeln('Да');
end
else
c:=b;
end;
writeln('Нет');
end.
При вводе 1234 выводит "нет" а при вводе 1224 вывыдит "да" "нет"

После
writeln('Да');
поставь
Exit;
PS: но решение всё-равно неправильное.
Один из правильных вариантов:
program q195935038;
function Duplicate(n, x: Integer): Boolean;
var
k: Integer;
begin
k := 0;
repeat
Inc(k, Integer(n mod 10 = x));
n := n div 10;
until n = 0;
Result := (k = 2); //Result := (k >= 2);
end;
var
a, i: Integer;
f: Boolean;
begin
ReadLn(a);
f := False;
for i := 0 to 9 do
if Duplicate(a, i) then
begin
f := True;
Break;
end;
WriteLn(f);
ReadLn;
end.
Для подобных задач в Pascal существует тип "множество".
var digits: set of 0..9;
a: integer;
flg: boolean;
begin
digits := [];
readln(a);
repeat
flg := a mod 10 in digits;
digits := digits + [a mod 10];
a := a div 10
until flg or (a = 0);
if flg then wtiteln('Да') else wtiteln('Нет')
end.
Без дополнительного флага, но говнокодистее:
var digits: set of 0..9;
a: integer;
begin
digits := [];
readln(a);
repeat
if a mod 10 in digits then begin
writeln('Да');
exit
end;
digits := digits + [a mod 10];
a := a div 10
until a = 0;
wtiteln('Нет')
end.
Получится короче, если преобразовать число в текст
var a,x,i,j:integer;
y:string;
begin
a:=0;
readln(x);
str(x,y);
for i:=1 to length(y)-1 do
for j:=i+1 to length(y) do
if y[i]=y[j] then a:=1;
if a=1 then writeln('Da') else writeln('Net')
end.
У вас вывд "Нет" стоит после цикла вообще без всякого условия.
Для 1231 у вас не выведется "Да", потому что вы сравнивете только подряд идущие цифры.
Чему равно c при начале работы программы?
Заведите массив digits : array [0..9] of integer;
Считайте в него встречаемость цифр.
Вывод обоих ответов (Да/Нет) поставьте после цикла, где вы обрабатываете число.
Какое-то кривое решение
Замути лучше массив от 0 до 9 ноликами
Когда раскладываешь число если элемент с индексом цифры нолик то ставишь единичку
Если уже единичка то Z:=1
После цикла если z нолик то нет если единица то да