Предмет: Информатика,
автор: Аноним
Условие задачи: Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом –
точка. Определить количество слов, которые начинаются и оканчиваются одной и той же буквой.
Код:
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.
Код работает через раз. Как я понял он сравнивает последнюю букву последнего слова, с самой первой буквой. Помогите пожалуйста исправить.
Ответы
Автор ответа:
1
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.
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.
Похожие вопросы
Предмет: Английский язык,
автор: qwic1
Предмет: Русский язык,
автор: nacccty
Предмет: Русский язык,
автор: timon201
Предмет: Немецкий язык,
автор: otvetbfrg
Предмет: Алгебра,
автор: 79782140874vlad