• Условие задачи: Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом –
    точка. Определить количество слов, которые начинаются и оканчиваются одной и той же буквой.
    Код:
    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);  Readlnend.
    • Автор:

      deanna
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years