В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
GORDON228band
GORDON228band
14.06.2020 16:24 •  Информатика

C++ Дан массив из n натуральных чисел. Удалить из массива все элементы, которые не являются однозначными или двухзначными. Затем в двухзначных числах поменять местами цифры, а потом переместить однозначные числа в конец массива. При этом порядок следования чисел в группах (однозначные, двухзначные) не должен изменяться.

Ответ:
yanochka13kol
yanochka13kol
31.03.2021 21:27

#include <iostream>

#include <vector>

using namespace std;

int len(int N){

   int cnt = 0;

   while(N > 0){

       cnt++;

       N /= 10;

   }

   return cnt;

}

void swap_digits(int &N){

   string tmp;

   while(N > 0){

       tmp += N % 10 + '0';

       N /= 10;

   }

   N = stoi(tmp);

}

int main(){

   int n;

   cin >> n;

   vector<int> elems1, elems2;

   for(int i = 0; i < n; i++){

       int x;

       cin >> x;

       if(len(x) == 1)

           elems1.push_back(x);

       else if(len(x) == 2){

           swap_digits(x);

           elems2.push_back(x);

       }

   }

   for(auto &i : elems1)

       elems2.push_back(i);

   for(auto &i : elems2)

       cout << i << " ";

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?