Автор: annna 20.04.2004 10:05
Дано несколько слов, в каждом из которых от одной до семи строчных букв; между соседними словами - не менее одного пробела, за последним словом точка. Напечатать слово с максимальной длиной.
Автор: APAL 20.04.2004 15:42
Где-то подобная задача уже была...
Пишу прямо здесь, без проверки:
Код
Function GetMaxLengthSt(St : String) : String;
Var
Smax,Scur : String;
i : Byte;
Begin
Scur:=''; i:=1;
Repeat
While St[i]=' ' do Inc(i);
While (St[i]<>' ') and (St[i]<>'.') do
Begin
Scur:=Scur+St[i];
Inc(i);
End;
If Length(Scur)>Length(Smax) then Smax:=Scur;
Until St[i]='.';
GetMaxLengthSt:=Smax;
End;
Автор: P@sh@ 20.04.2004 15:47
Код
var s: string;
i,n,imax,nmax: integer;
begin
writeln('Введите строку:');
readln(s);
i:=1; nmax:=0;
repeat
while s[i]=' ' do i:=i+1;
n:=i;
while (s[i]<>' ') and (s[i]<>'.') do i:=i+1;
if i-n>nmax then begin
nmax:=i-n; imax:=n;
end;
until s[i]='.';
if nmax=0 then writeln('Просто нет слов')
else writeln('Самое длинное - ',copy(s,imax,nmax));
end.
написал только что... не проверял