nếu tôi có một mảngmảng loại tăng gấp đôi trong C
double i[5] = {1.023, 1.22, 1.56, 2, 5, 3.331};
làm thế nào để sắp xếp các giá trị để họ trông như thế này:
double i[5] = {1.023, 1.22, 1.56, 2, 3.331, 5};
tôi đã cố gắng qsort() mà không may mắn, sau khi thử một số ví dụ, tôi đến với:
qsort(i, 5, sizeof(double), sort);
int sort(const void *x, const void *y)
{
return (*(double*)x - *(double*)y);
}
với =>
lỗi: loại không tương thích cho lập luận 1
không sắp xếp mảng .....
"loại không tương thích cho đối số 1" bạn có chắc là bạn đang biên dịch dạng này thành C chứ không phải C++? Nếu bạn thực sự phải biên dịch nó dưới dạng C++, thì hãy chuyển nó thành (void *). –
Chỉ cần cho rõ ràng, thói quen so sánh của bạn nên được gọi là cái gì đó như 'so sánh', không phải' sắp xếp'. –