Предмет: Информатика,
автор: Аноним
Дано предложение.
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
слова: в три
Похожие вопросы
Предмет: Физкультура и спорт,
автор: svetagh809
Предмет: ОБЖ,
автор: zenapolovan
Предмет: Українська література,
автор: veronicalagoda356
Предмет: Математика,
автор: pakentiseva
Предмет: Қазақ тiлi,
автор: Аноним