String46. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Найти длину самого длинного слова.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
program String46; var S:String; i,Num,NumC,MaxNumC:integer; begin Write('S: '); Readln(S); i:=1; Num:=0; NumC:=0; MaxNumC:=0; While (i<=Length(S)) do begin if (S[i]=' ') then begin if ((NumC>MaxNumC) or (MaxNumC=0)) and (NumC<>0) then MaxNumC:=NumC; NumC:=0; end else inc (NumC); inc(i); end; if ((NumC>MaxNumC) or (MaxNumC=0)) and (NumC<>0) then MaxNumC:=NumC; Writeln(MaxNumC); end. |
Решение от Newton:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
program String46; const Space = ' '; var Line : string; WordLen, MaxLen : byte; Counter : byte; begin writeln('Enter a string: '); readln(Line); WordLen := 0; MaxLen := 0; for Counter := 1 to Length(Line) do begin if (Line[Counter] <> Space) then inc(WordLen); if (Line[Counter] = Space) or (Counter = Length(Line)) then begin if (WordLen > MaxLen) then MaxLen := WordLen; WordLen := 0; end; end; writeln('The longest word in the string contains ', MaxLen, ' character(s)'); end. |
Другие задачи из раздела String можно посмотреть здесь.
Решил так:
Добавил в шапку.