Помогите пожалуйста написать программу:
Дана строка, состоящая из русских слов, разделённых пробелами (одним или несколькими).
Вывести строку, содержащую эти же слова, но расположенные в обратном алфавитном порядке.
Эта задача интересна для тебя... Для других - нет, потому, что уже решена. Ищи...
http://forum.pascal.net.ru/index.php?act=Search&f=12
Я искал, но ничего подобного не нашёл.
Какие хоть у кого есть мысли!
И что же ты искал ?
Поиск -> "обратном алфавитном порядке"
http://forum.pascal.net.ru/index.php?showtopic=6972
Простейший вариант: Получаешь массив слов, и выводишь его с конца
По сложнее: "развертывешь" строку "на ходу" c конца и выводишь слова.
Все это есть в приведенной ссылке.
Мой нещастный мозг почемуто интерпритировал задание как "вывести слова строки в обратном порядке", volvo естественно прав.
Ребятушки! Программистушки! Нужно решать непосредственно со строкой, а не разворачивать её в массив.
Светлая голова найдётся? Задачу нужно решить позарез!
Ты читать умеешь ?
var
s, _word, _max: string;
i, start: integer;
finished: boolean;
begin
write('s = '); readln(s);
s := s + ' ';
repeat
finished := true;
_word := ''; _max := '';
for i := 1 to length(s) do begin
if s[i] = ' ' then begin
if _word > _max then begin
start := i - length(_word);
_max := _word;
end;
_word := '';
end
else begin
_word := _word + s[i];
finished := false;
end;
end;
if not finished then begin
delete(s, start, length(_max));
write(_max: length(_max) + 1);
end
else writeln;
until finished;
end.
Большое спасибо и бесконечный respect Volvo.