1

Тема: Динамічний масив

Розробити функцію, яка перетворює заданий масив таким чином, що спочатку масиву розташовуються упорядковані за зростанням додатні елементи, а потім впорядковані від’ємні.

Допоможіть поправити.

#include "pch.h"
#include <iostream>

using namespace std;

void sortyvanna(int *mas, int n)
{
    int temp;
    for (int i = 0; i < n - i - 1; i++)
    {
        for (int j = 0; j < n - i - 1; j++)
        {
            if (mas[i] > mas[j+1])
                {
                    temp = mas[j];
                    mas[j] = mas[j+i];
                    mas[j+1] = temp;
                }
        }
    }
    cout << "Number - ";
        for (int i = 0; i < n; i++)
        {
            cout << mas[i] << " ";
        }
}
int main()
{
    int n;
    cout << "Enter N: "; cin >> n; cout << '\n';
    while (n < 0)
    {
        cout << "Enter N: "; cin >> n; cout << '\n';
    }
    int *mas;
    mas = new int[n];

    for (int i = 0; i < n; i++)
    {
        cout << "Enter " << i + 1 << " number: ";
        cin >> mas[i];
    }
    sortyvanna(mas, n);
    cout << '\n';
    delete []mas;
    system("pause");
    return 0;
}

2

Re: Динамічний масив

Видалив дубль.
Поясніть, що саме треба поправити? Чим вас ця програма не влаштовує?

3 Востаннє редагувалося Shelleex (25.03.2019 21:42:25)

Re: Динамічний масив

Вибачте за дубль,можливо інтернет якось зробив...
А так воно сортує погано попробуйте самs вписати любі значення відємні і не відємні

4

Re: Динамічний масив

Пане, розумієте, я можу вписати. Я можу знайти ще з десяток різних проблем. Але ви маєте якусь конкретну проблему. Але чому я маю це робити?
Якщо не можете сформулювати її - напишіть хоча б що ви очікуєте отримати, а що отримуєте. А тут складається враження, що це нам потрібно, а не вам - ви бачите перед собою проблему, але замість описати її кажете, щоб ми самі пробували.

5

Re: Динамічний масив

Я очікую "щоб спочатку масиву розташовуються упорядковані за зростанням додатні елементи, а потім впорядковані від’ємні.".

6

Re: Динамічний масив

Вибачте, я вмію читати. Іноді я не помічаю частину умови, так, але не тут. А тепер перечитайте, що я у вас просив.
Бо наразі у мене складається стійке враження, що вам дуже принципово зекономити собі дві хвилини часу. Повірте, ви витратите значно більше, якщо не зробите того, про що я просив вас.

7

Re: Динамічний масив

Добре дивіться я хочу чоб було так
я ввожу я
1 -2 -3 -4 2
ввиводить воно
1 1 1 1 2
а повинно
1 2 -4 -3 -2

8

Re: Динамічний масив

У двох рядках я бачу помилки неуважності:

if (mas[i] > mas[j+1])
mas[j] = mas[j+i];

Гадаю, проблема в них.

9

Re: Динамічний масив

Можете допомгти переправити я не знаю як.

10

Re: Динамічний масив

Для початку - як працює сортування "бульбашкою": порівнюємо кожен елемент із наступним (тобто mas[j] із mas[j+1]) і, якщо вони стоять неправильно, обмінюємо їх; і так повторюємо стільки разів, скільки елементів у масиві (це зовнішній цикл, по i).
Тепер - сформулюйте умову, за якої елементи mas[j] та mas[j+1] стоять неправильно і їх треба обміняти.
І уважніше подивіться, які елементи ви обмінюєте.