не работает qsort c++

130
21 апреля 2022, 14:10

код должен сортировать числа, но выдаёт ошибку.

#include <iostream>
#include <cstdlib>
using namespace std;
int comp(const int* i, const int* j)
{
    return *i - *j;
}

int main() {
    int n;
    bool compare=true;
    cin >> n;
    int* arr = new int[n];
    for (int i = 0; i < n; i++)
    {
        cin >> arr[i];
    }
        qsort(arr, sizeof(int), comp);
    for (int j = 0; j < n; j++)
    {
        cout << arr[j] << " ";
    }
}
Answer 1

Потому что в qsort вторым параметром передается количество элементов, размер элемента передается третьим параметром, а компаратор только четвертым...

qsort(arr, n, sizeof(int), comp);

Для тех, кто в танке: по ссылке ясно видно, что компаратор должен быть

int comp(const void* i, const void* j)

Обратите внимание на void. Но это не имеет отношения к вашему вопросу, это уже другая ошибка.

Разжевывая как для милиционера - медленно и два раза:

int comp(const void* i, const void* j)
{
    return *(const int*)i - *(const int*)j;
}
READ ALSO
Получение scale ratio в коде С++ в системе Linux

Получение scale ratio в коде С++ в системе Linux

Необходимо получить scale ratio(измнение масштаба отображения в настроках мониторов 100-200-300%) в коде C++Пробовал пролистать документацию Xrandr ничего...

99
Бот для решения теста [закрыт]

Бот для решения теста [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах

82
Сжать картинку в JPEG с потерями качества C++

Сжать картинку в JPEG с потерями качества C++

Решил написать забавы ради и интереса приложение на С++, которое будет "Шакалить" изображенияНашел хорошое решение на OpenCV, но слишком...

72
Как можно оптимизировать мою реализацию сортировки строк msd?

Как можно оптимизировать мою реализацию сортировки строк msd?

У меня в сортировке есть узкое место, но я не могу его найти, подскажите что можно оптимизирвоать

156