Загрузка...

Лаба с++

Тема в разделе C/C++ создана пользователем bomjorii 12 окт 2022. 170 просмотров

  1. bomjorii
    bomjorii Автор темы 12 окт 2022 https://zelenka.guru/threads/5035223/ фри 100р 31 25 авг 2021
    В одномерном массиве все нулевые элементы перенести
    в конец массива, дополнительный массив использовать не разрешается. Посчитать количество перемещений.

    Есть идея, что нужно просто двигать на i+1, но реализовать не могу
     
  2. kageno
    kageno 12 окт 2022 1625 12 дек 2016
    bomjorii, не изменяя порядок других элементов относительно друг друга?
     
    1. bomjorii Автор темы
      kageno, да похрен, главное чтобы нули в конце
  3. Dezo
    Dezo 12 окт 2022 210 30 июн 2021
    Узнай индекс каждого нулевого элемента и перенеси в конец массива через буферную переменную
     
    1. bomjorii Автор темы
      Dezo, как это сделать?
    2. Dezo
      bomjorii, там легко на самом деле, просто нужно понять принцип
  4. Dezo
    Dezo 12 окт 2022 210 30 июн 2021
    Циклом проверяй элементы массива на равность нулю, потом просто меняй значения местами.
    --- Сообщение объединено с предыдущим 12 окт 2022
    for(int i = 0; i < длинна массива - i; i++) типа такого цикла
     
    1. bomjorii Автор темы
      Dezo, а как записать что меняю?
    2. Dezo
      bomjorii, там чел ниже код скинул, так и запиши. Тот же самый принцип что я описал, ток сделан чуть иначе
    3. bomjorii Автор темы
  5. kageno
    kageno 12 окт 2022 1625 12 дек 2016
    bomjorii, если не важен порядок, то вот так
    C
    #include <iostream>

    using namespace std;

    int main()
    {
    int n[] = {1, 0, 2, 3, 0, 4, 5, 4, 0};
    int ns = sizeof(n) / sizeof(int);

    for (int i = 0; i < ns; i++) {
    cout << n[i] << " ";
    }

    int lastReplaceIndex = ns;
    for (int i = ns - 1; i >= 0; i--) {
    if (n[i] == 0) {
    swap(n[i], n[lastReplaceIndex - 1]);
    lastReplaceIndex -= 1;
    }
    }
    cout << endl;

    for (int i = 0; i < ns; i++) {
    cout << n[i] << " ";
    }
    }
     
    12 окт 2022 Изменено
    1. bomjorii Автор темы
      kageno, спасибо, дома чекну
Top
Загрузка...