내 코드입니다 : 배열에 NaN
추가QuickSort 알고리즘에 NaN을 포함시키는 방법은 무엇입니까? 다음
#include <stdlib.h>
#include <stdio.h>
#include <limits>
#define INFINITY std::numeric_limits<float>::infinity()
#define NEGINFINITY -std::numeric_limits<float>::infinity()
int floatcomp(const void* elem1, const void* elem2)
{
if (*(const float*)elem1 < *(const float*)elem2)
return -1;
return *(const float*)elem1 > *(const float*)elem2;
}
int main()
{
float array[10] = {INFINITY, 3.5f, 144.4f, NAN, 12.4f, NEGINFINITY, 1.4f, -0.0f, 5.9f};
int i;
for (i = 0; i < 10; i++)
printf("%f\n", array[i]);
printf("\n");
qsort(array, 10, sizeof(float), floatcomp);
for (i = 0; i < 10; i++)
printf("%f\n", array[i]);
return 0;
}
의 NaN
은 그것이 있어야로 제대로 분류되어지고되지 않고, 나는 제대로 두 개의 서로 다른 가수의에 추가 할 수 (신호 조용) 아니에요 NaN
을 맨 위의 문자열로 내 코드에 삽입하십시오.
'NaN'을 지원 하시겠습니까? 그것이 숫자가 아니라고 가정 할 때, 나는 명확한 지시를 따르라는 말을하지 않을 것입니다. – Carcigenicate
예 NaN을 에세이의 일부로 포함시키고 싶습니다. 이 알고리즘을 알고리즘에 추가하는 것을 제외하고는 다른 모든 부분을 사용했습니다. –
"NaN이 제대로 정렬되지 않습니다."- 어떻게 "올바르게"정의 할 수 있습니까? 그것은 시작, 끝, 중간에 있어야합니까? 무한대 전후에? –