Цитата:
Сообщение от Ins1s
здравствуйте. помогите пожайлуста!
Дана строка,слова в которой разделены хотя бы одним пробелом. Найти самое короткое слово в строке и поменять местами первую и последние буквы в нем. помогите пожайлуста на Паскале.!
|
Пожалуйста. Ввод обрабатываемой строки и ее содержимое поправьте сами. У меня там строка вбита просто для примера и отладки:
Код:
VAR
S,Smin,Sinv:STRING;
i,j,Number_of_Words,Min:INTEGER;
WRDS:ARRAY[1..200] of STRING;
BEGIN
S:='Long ago there were three pigs';
FOR j:=1 TO 200 DO
WRDS[j]:='';
i:=0;
j:=0;
Number_of_Words:=0;
REPEAT
INC(i);
IF S[i]<>' ' THEN
BEGIN
INC(Number_of_Words);
REPEAT
WRDS[Number_of_Words]:=WRDS[Number_of_Words]+S[i+j];
INC(j);
UNTIL (S[i+j]=' ') OR ((i+j-1)=Length(S));
i:=i+j-1;
j:=0;
END;
UNTIL i=Length(S);
Min:=255;
FOR j:=1 TO Number_of_Words DO
IF Length(WRDS[j])<Min THEN
BEGIN
Min:=Length(WRDS[j]);
Smin:=WRDS[j];
END;
Sinv:=Smin[Length(Smin)];
FOR j:=2 TO Length(Smin)-1 DO
Sinv:=Sinv+Smin[j];
Sinv:=Sinv+Smin[1];
WriteLn(S);
Writeln(Smin);
WriteLn(Sinv);
ReadLn;
END.