Предмет: Информатика, автор: iiigor

50 БАЛЛОВ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
В программе мы создаем и заполняем динамический массив объектов класса. Затем проводим сортировку массива по элементу x и выводим отсортированный массив.
Нужно исправить программу:
#include
#include
#include

using namespace std;

class P
{
public:
P(int x, int y)
{
this->x = x;
this->y = y;
};
/*void print()
{
cout << x << y << endl;
}*/

private:
int x;
int y;
};

int main()
{
int size;
cin >> size;
P *arr = new P[size];
for (int i = 0; i < size; i++) {
cin >> P arr[i].x;
cin >> P arr[i].y;
};

P temp(); // временная переменная для обмена элементов местами

// Сортировка массива пузырьком
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j].x > arr[j + 1].x) {
// меняем элементы местами
temp.x = arr[j].x;
arr[j].x = arr[j + 1].x;
arr[j + 1].x = temp.x ;
}
}
}

// Вывод отсортированного массива на экран
for (int i = 0; i < size; i++) {
cout << arr[i].x << " ";
}

delete [] arr;


}
}

Ответы

Автор ответа: clinteastwood2
0
#include <iostream>
using namespace std;
struct P
{
    P() = default;
    P(int x, int y)
    {
        this->x = x;
        this->y = y;
    };

    int x;
    int y;
};

int main()
{
    int size;
    cin >> size;
    P *arr = new P[size];
    for (int i = 0; i < size; i++) {
        cin >> arr[i].x;
        cin >> arr[i].y;
    };

    P temp; // временная переменная для обмена элементов местами

              // Сортировка массива пузырьком
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j].x > arr[j + 1].x) {
                // меняем элементы местами
                temp.x = arr[j].x;
                arr[j].x = arr[j + 1].x;
                arr[j + 1].x = temp.x;
            }
        }
    }

    // Вывод отсортированного массива на экран
    for (int i = 0; i < size; i++) {
        cout << arr[i].x << " ";
    }

    delete[] arr;
}
Похожие вопросы
Предмет: Математика, автор: folot1789