Предмет: Информатика,
автор: 20SASHULYA08
На вход программе подаётся последовательность символов, заканчивающаяся точкой. Требуется написать программу, которая определяет, есть ли в этой последовательности цифры, и выводит НАИБОЛЬШЕЕ число, которое можно составить из этих цифр. Ведущих нулей быть не должно, за исключением одного нуля. Если числа нет, выводится сообщение 'no', если число есть - 'да' и в следующей строке искомое число.
Например, если исходная последовательность была такая: Day 10, mice 8: "Year" 7 is a mistake 91.
То результат должен быть следующий:
Да
987110
Ответы
Автор ответа:
0
Var
A:array['0'..'9'] of longint;
C:char;
i:integer;
Begin
For C:= '0' to '9' do A[C]:=0;
Repeat
Read(C);
if C in['0'..'9'] then A[C]:=A[C]+1;
Until C = '.';
if (A['1']=0)and(A['2']=0)and(A['3']=0)and(A['4']=0)and(A['5']=0)and(A['6']=0)and(A['7']=0)and(A['8']=0)and(A['9']=0) then
if A['0']=0 then Write('no')
else
Begin
WriteLn('Да');
WriteLn(0);
End
else
Begin
WriteLn('Да');
For C:='9' downto '0' do
For i:= 1 to A[C] do
Write(C)
End
End.
A:array['0'..'9'] of longint;
C:char;
i:integer;
Begin
For C:= '0' to '9' do A[C]:=0;
Repeat
Read(C);
if C in['0'..'9'] then A[C]:=A[C]+1;
Until C = '.';
if (A['1']=0)and(A['2']=0)and(A['3']=0)and(A['4']=0)and(A['5']=0)and(A['6']=0)and(A['7']=0)and(A['8']=0)and(A['9']=0) then
if A['0']=0 then Write('no')
else
Begin
WriteLn('Да');
WriteLn(0);
End
else
Begin
WriteLn('Да');
For C:='9' downto '0' do
For i:= 1 to A[C] do
Write(C)
End
End.
Похожие вопросы
Предмет: Математика,
автор: guluevan
Предмет: Қазақ тiлi,
автор: Temirtas04
Предмет: Русский язык,
автор: Аноним
Предмет: Математика,
автор: ArinaDamianidi
Предмет: Алгебра,
автор: ErnieDEN