Как в C++ отсортировать массив

Как в С++ отсортировать массив чисел с плавающей точкой так, что бы числа были от меньшего к большему в целой части, а в случае одинаковых целых частей, от большей к меньшей в дробной. Т.Е. При входных данных : 5,3; 6,4; 3,2; 5,1; 5,2; Вывод: 3,2; 5,3; 5,2; 5,1; 6,4;


Ответы (1 шт):

Автор решения: Harry

Утомился объяснять. Держите, сдавайте...

#include <algorithm>
#include <iostream>
#include <cmath>

using namespace std;

bool comp(double a, double b)
{
    if (floor(a) < floor(b)) return true;
    else if (floor(a) > floor(b)) return false;
    else return fmod(a,1) > fmod(b,1);
}

int main()
{
    double a[] = {5.3, 6.4, 3.2, 5.1, 5.2 };

    sort(a, a+5, comp);

    for(auto x: a) cout << x << "  ";
}

https://ideone.com/PMYQd8

→ Ссылка