Цитата:
Сообщение от Solom1k
Дано некое число. Выбросить из него наибольшую и наименьшую цифру. Если наиболее высокая цифра не одна, выбросить их все, аналогично поступить с наименьшей цифрой.
|
Пожалуйста.
Несколько пояснений.
1. Поскольку задача решена через строковый формат, максимальная длина числа составляет 255 цифр.
2. Программа написана на Free Pascal. Естественно, оттестирована. За возможные глюки этого идиотского АВС (может закапризничать Val) автор не отвечает.
Код:
Var
S:String;
Q,Qmin,Qmax:Byte;
i,Code,L:Integer;
b:boolean;
Begin
Repeat
b:=true;
Writeln('Enter the number:');
Readln(S);
L:=Length(S);
for i:=1 to L do
if (Ord(S[i])<48) or (Ord(S[i])>57) then
begin
b:=false;
Writeln('Only digits allowed!');
end;
Until b;
Val(S[1],Qmin,Code);
Val(S[1],Qmax,Code);
for i:=2 to L do
begin
Val(S[i],Q,Code);
if Q<Qmin then Qmin:=Q;
if Q>Qmax then Qmax:=Q;
end;
i:=0;
Repeat
Inc(i);
Val(S[i],Q,Code);
if (Q=Qmax) or (Q=Qmin) then
begin
Delete(S,i,1);
Dec(i);
Dec(L);
end;
Until i=L;
Writeln('Result:');
Writeln(S);
Readln
End.