• Объясните, пожалуйста, почему у меня в этой программе выводится последняя буква первого слова, а не второго, и что надо исправить, чтобы выводило последнюю букву второго слова предложения?
    Program vtor_bukva;
    Var
    S:String;
    Begin
    Writeln('введите исходное предложение: ');
    Readln(s);
    write('Последняя буква второго слова=',s[pos(' ',s)-1]);
    readln (s);
    end.
    Даю 20 баллов. Помогите, пожалуйста.

Ответы 1

  • program vtor_bukva;var  S: String;begin  Writeln('введите исходное предложение: ');  Readln(s);  delete(s, pos(' ', s), 1);  write('Последняя буква второго слова=');  if pos(' ', s) <> 0 then write(s[pos(' ', s) - 1])  else write(s[length(s)]);  readln(s);end.Твоя программа выводит символ, стоящий перед ПЕРВЫМ пробелом. А нужно, чтобы выводила символ, стоящий перед вторым пробелом. Не стоит забывать, что второго пробела может и не быть. Так что, я удаляю первый пробел. А потом делаю проверку: есть ли ещё пробелы (if pos(' ', s) <> 0)? Если пробелы есть, то программа выводит букву, следующую перед вторым пробелом (или последнюю букву второго слова). Если пробелов нет (всего два слова в предложении было введено), то программа выводит последнюю букву (s[length(s)]). Если что-то не понятно, в лс.
    • Автор:

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

Войти через Google

или

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

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

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