Вопрос задан 22.03.2021 в 10:13. Предмет Информатика. Спрашивает Щербакова Анна.

Представьте, что перед нами стоят бочки с номерами на них. Нас сильно просят переставить их местами

так, что нечетные бочки остались на месте, а четные шли в обратном порядке исходному. Язык си или с++
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Васильев Кирилл.

#include <iostream>

using namespace std;

int main(){

int n, m=0, r;

cin>>n;

int arr[n], arrb[n];

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

 cin>>arr[i];

 if(arr[i]%2==0) {

  arrb[m]=i;

  ++m;

 }

}

--m;

r=m;

for (int i=0; i<=m/2; ++i) {

 int buf = arr[arrb[i]];

 arr[arrb[i]]=arr[arrb[r]];

 arr[arrb[r]]=buf;

 --r;

}

for (int i=0; i<n; ++i) cout<<arr[i]<<" ";

}

Будут вопросы по решению - пиши.

0 0
Отвечает Щипанова Дарья.

#include <iostream>

using namespace std;

int main() {

 int n,k,m;

 cout<<"n = "; cin>>n; k=n-1;

 int a[n];

 for (int i=0; i<n; i++) cin>>a[i];

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

   if (a[i]%2==0) {

      while ((a[k]%2!=0) && (k>i)) k--;

      if (k>i) {  

        m=a[i]; a[i]=a[k]; a[k]=m; k--;  

      }  

   }    

   cout<<a[i]<<" ";

 }

 cout<<endl;

 system("pause");

 return 0;

}

n = 11

2 3 5 7 4 6 8 9 13 10 11

10 3 5 7 8 6 4 9 13 2 11

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример решения данной задачи на языке C++:

cpp
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { // Создаем вектор с номерами бочек vector<int> barrels = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // Перемещаем четные бочки в конец вектора vector<int> even_barrels, odd_barrels; for (int i = 0; i < barrels.size(); i++) { if (barrels[i] % 2 == 0) { even_barrels.push_back(barrels[i]); } else { odd_barrels.push_back(barrels[i]); } } barrels = odd_barrels; barrels.insert(barrels.end(), even_barrels.begin(), even_barrels.end()); // Разворачиваем четные бочки reverse(barrels.begin() + 1, barrels.end() - 1); // Выводим результат for (int i = 0; i < barrels.size(); i++) { cout << barrels[i] << " "; } cout << endl; return 0; }

В данном решении мы создаем вектор barrels с номерами бочек, затем разделяем его на два вектора - even_barrels, в котором будут храниться четные номера, и odd_barrels, в котором будут храниться нечетные номера. Затем мы собираем вектор barrels обратно, помещая в него сначала все нечетные номера, а затем все четные номера.

Далее мы используем функцию reverse из библиотеки <algorithm> для разворота элементов вектора, начиная с первого четного элемента и заканчивая последним четным элементом.

Наконец, мы выводим полученный результат на экран.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос