Условие задачи: Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом – точка. Определить количество слов, которые начинаются и оканчиваются одной и...

Условие задачи: Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом – точка. Определить количество слов, которые начинаются и оканчиваются одной и той же буквой. Код: Program stroka; Var s:String; i,k:Integer; c:char; Begin ReadLn(s); c:=s[1]; For i:=1 To Length(s) Do begin if (((s[i]=',') or (s[i]='.')) and (s[i-1]=c)) then begin inc(k); c:=s[i+1]; end; end; writeln(k); readln; End. Код работает через раз. Как я понял он сравнивает последнюю букву последнего слова, с самой первой буквой. Помогите пожалуйста исправить.
Гость
Ответ(ы) на вопрос:
Гость
program stroka; var   s: string;   i, k: Integer;   c: char; begin   ReadLn(s);   c := s[1];   i:=1;   while i<=Length(s) do     if (s[i]=',') or (s[i]='.') then     begin       if s[i-1]=c then Inc(k);       if s[i]=',' then c := s[i + 1]       else c:='.';       i:=i+2     end     else Inc(i);   Writeln(k);   Readln end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы