Как в 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 << " ";
}