"Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами – пробел, за последним словом – точка. Вывести те слова последовательности, у которых буквы уп...
"Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами – пробел, за последним словом – точка. Вывести те слова последовательности, у которых буквы упорядочены по алфавиту."
Есть код,но он не работает.Прошу объяснить что я делаю не так.Язык-Паскаль.
uses crt;
var
c,i,j:integer;
text,st:string;
begin
c:=0;
clrscr;
writeln('vvedite text:');
readln(text);
for i:=0 to length(text) do
if (text[i]=' ') or (text[i]='.') then
begin
st:=copy(text,0,i);
delete(text,0,i+1);
writeln('text=',text);
end;
for j:=0 to length(st) do
begin
if pos(st[j],st) c:=c+1;
if c=length(st) then
writeln(st);
st:='';
end;
readln;
end.
readln;
end.
Ответ(ы) на вопрос:
Гость
Так как написана программа, в лучшем случае будет найдено только одно слово, должны быть вложенные циклы.
Решение (немного исправленное) в прикрепленном файле.
Ввод - вывод программы:
vvedite text:
it's a text for check programm abcdefgh hgfe pqrstu srqp.
word = for
word = abcdefgh
word = hgfe
word = pqrstu
word = srqp
Не нашли ответ?
Похожие вопросы