Есть ответ 👍

(C++) У даному тексті замінити всі символи «.» на послідовність символів «...». Якщо у тексті зустрічаються підряд три крапки, то залишити ix без змін.

236
341
Посмотреть ответы 2

Ответы на вопрос:

lol1044
4,4(89 оценок)

#include <iostream>

using namespace std;

int main()

{

   

   string str;

   cout << "Old string:\n";

   getline(cin,str);//если cin >> str, то считывание лишь до первого пробела

   for (int i=0; i < str.length(); i++) //таким образом перемещаемся по элементах строки

   {

       if (str[i] == '.')// если в тексте найдено точку...

       {

           if (str[i + 1] == '.' && str[i + 2] == '.') // ...если дальше есть две точки подряд...

           i+=2;//...то идти дальше: i+=2 здесь и i++ в условии цикла - итого перепрыгнуть через те две точки (i+=3)

           else //если дальше нет двух точек подряд...

           {

               for (int j = 0; j < 2; j++)// ...то по одной...

               {

               str.insert(i, ".");// ..."создать" их, используя функцмю str.insert(pos,key), где первый аргумент - позиция вышенайденной точки, перед которой "создаём" точку (вставляем 2-й аргумент)

               i++;//мы сейчас на новосозданной точке, поэтому идти дальше: переместиться на один символ вперёд - итого мы сейчас на той точке, которую мы не создавали и которая была в Old string

               }

   }}}

   

   cout << "New string =\n" << str;

   return 0;

}


Отрицательные числа нам не подходят, т.к. не выполняется условие если б больше 0. нам надо найти массив, в котором сумма положительных чисел равна 9. в 1-м случае выходит 6. во 2-м выходит 9, вот мы и нашли правильный ответ. перепроверим остальные: 3)1 4)10 выходит ответ: 2й массив

Популярно: Информатика