Дано предложение.
1) Найти два самые минимальные по длине соседствующие слова, и вывести на экран.
2) Вывести кол-во букв этих двух минимальных соседствующих слов.
Аноним:
Слова разделены пробелом, конечно же :)
Единственным или несколькими?
Одним пробелом
Вы мне поможете?
Нужно найти пару слов с минимальной суммарной длиной, так?
Да, но чтобы они соседствовали друг с другом
Щас пример приведу.
Входные данные: The thing is enormous. Выходные данные: 7 (на 1 строк), thing is (на 2 строке)
Сначала выводишь длину этих двух минимальных соседствующих друг с другом слов
Потом сами эти слова
Ответы
Ответ дал:
1
var txt: string;
i,k,n,m,mn: integer;
a: array of string;
begin
write('предложение: '); readln(txt);
k:=0; mn:=length(txt);
for i:=1 to length(txt) do
if txt[i]=' ' then k:=k+1;
k:=k+1;
setlength(a,k+1);
for i:=1 to k-1 do
begin
a[i]:=copy(txt,1,pos(' ',txt)-1);
delete(txt,1,pos(' ',txt));
end;
a[k]:=txt;
n:=length(a[1]);
for i:=2 to k do
begin
if n+length(a[i])<mn then
begin
mn:=n+length(a[i]);
m:=i-1;
end;
n:=length(a[i]);
end;
writeln('количество букв: ',mn);
writeln('слова: ',a[m],' ',a[m+1]);
end.
предложение: кот пришел домой в три часа ночи
количество букв: 4
слова: в три
i,k,n,m,mn: integer;
a: array of string;
begin
write('предложение: '); readln(txt);
k:=0; mn:=length(txt);
for i:=1 to length(txt) do
if txt[i]=' ' then k:=k+1;
k:=k+1;
setlength(a,k+1);
for i:=1 to k-1 do
begin
a[i]:=copy(txt,1,pos(' ',txt)-1);
delete(txt,1,pos(' ',txt));
end;
a[k]:=txt;
n:=length(a[1]);
for i:=2 to k do
begin
if n+length(a[i])<mn then
begin
mn:=n+length(a[i]);
m:=i-1;
end;
n:=length(a[i]);
end;
writeln('количество букв: ',mn);
writeln('слова: ',a[m],' ',a[m+1]);
end.
предложение: кот пришел домой в три часа ночи
количество букв: 4
слова: в три
Вас заинтересует
1 год назад
1 год назад
2 года назад
2 года назад
3 года назад
3 года назад
8 лет назад
8 лет назад