Будем перебирать символы строки с конца и измерять количество подряд идущих непробельных символов. Если очередной символ - пробел, то следует вывести на экран отрезок строки от предыдущего с конца символа на длину подряд идущих непробельных символов. Это делается с помощью функции copy(). После того как слово будет выведено, надо обнулить фиксируемую длину слова.
Поскольку вывод слова "срабатывает", только когда встречается пробел, то первое слово строки (последнее из найденных при поиске с конца) выведено не будет, если перед ним нет пробела. Поэтому в программе за циклом предусмотрен отдельный вывод последней найденной подстроки.
Программа на языке Паскаль:
var
str: string;
len, i, a: byte;
begin
readln(str);
len := length(str);
a := 0;
for i:=len downto 1 do begin
if str[i] = ' ' then begin
write(copy(str,i+1,a),' ');
a := 0;
end
else
a := a + 1;
end;
write(copy(str,i,a));
writeln;
end.
Пример работы программы:
11 22 33 44 55
55 44 33 22 11
Объяснение:
но я точно не знаю я старался как мог я искал и нашел кажется
Answers & Comments
Описание переменных:
str - строка;
len - длина строки;
a - длина очередного слова;
i - текущая позиция в строке.
Алгоритм решения задачи:
Будем перебирать символы строки с конца и измерять количество подряд идущих непробельных символов. Если очередной символ - пробел, то следует вывести на экран отрезок строки от предыдущего с конца символа на длину подряд идущих непробельных символов. Это делается с помощью функции copy(). После того как слово будет выведено, надо обнулить фиксируемую длину слова.
Поскольку вывод слова "срабатывает", только когда встречается пробел, то первое слово строки (последнее из найденных при поиске с конца) выведено не будет, если перед ним нет пробела. Поэтому в программе за циклом предусмотрен отдельный вывод последней найденной подстроки.
Программа на языке Паскаль:
var
str: string;
len, i, a: byte;
begin
readln(str);
len := length(str);
a := 0;
for i:=len downto 1 do begin
if str[i] = ' ' then begin
write(copy(str,i+1,a),' ');
a := 0;
end
else
a := a + 1;
end;
write(copy(str,i,a));
writeln;
end.
Пример работы программы:
11 22 33 44 55
55 44 33 22 11
Объяснение:
но я точно не знаю я старался как мог я искал и нашел кажется