C клавиатуры вводится произвольная строка символов. Группы символов, разделенные пробелами и не имеющие пробелов внутри, будем называть словами. Написать программу, которая удаляет все слова с нечетными номерами. Вывести получе...

C клавиатуры вводится произвольная строка символов. Группы символов, разделенные пробелами и не имеющие пробелов внутри, будем называть словами. Написать программу, которая удаляет все слова с нечетными номерами. Вывести полученную строку на экран. Длина строки не более 100 символов.
Гость
Ответ(ы) на вопрос:
Гость
Решение, быть может и не тривиальное, но за 5 баллов ломать голову, как это сделать "по-школьному" мне не захотелось. Да и не требовалось по условию... даже язык программирования не был указан. // PascalABC.NET 3.1, сборка 1256 от 21.06.2016 begin   var s:=ReadlnString('>');   var m:=s.Matches('(\S+)').Select(x->(x.Index+1,x.Value.Length));   // получили последовательность элементов вида <позиция><длина>,   // отражающих положение слов в строке.   var n:=m.Count; // количество слов   if n.IsEven then Dec(n);   while n>0 do begin     var e:=m.ElementAt(n-1);     Delete(s,e.Item1,e.Item2);     Dec(n,2)     end;   Writeln(s) end. Тестовое решение >    Карл  у  Клары   украл кораллы Клара    у   Карла украла кларнет        у     украл  Клара       Карла  кларнет
Гость
//Скучное, школьное //Pascal ABC.NET 3.1 сборка 1219 Var  s:string;  i:integer; begin readln(s); s:=s.Trim; i:=1; while i<=length(s)-1 do if (s[i]=' ') and (s[i+1]=' ') then delete(s,i,1) else inc(i); var ars:=s.Split; s:=''; i:=1; while i<=ars.length-1 do  begin   s:=s+ars[i]+' ';   i:=i+2;  end; writeln(s); end. Пример ввода: С понедельника точно начну писать документацию. Вот пока немного годноты. Пример вывода: понедельника начну документацию. пока годноты. 
Не нашли ответ?
Ответить на вопрос
Похожие вопросы