Thread overview | |||||
---|---|---|---|---|---|
|
March 18, 2007 qsort/compare | ||||
---|---|---|---|---|
| ||||
Hello, I need to sort an array of structures into desending order by an element declared as a float. Here is my compare function which im using with Qsort. ---------------------------------------------------------------- int compare_one(const void *v1, const void *v2) { int return_value; return_value = (*(struct proform*)v1).eq_rating - (*(struct proform*)v2).eq_rating; if(return_value < 0 ) { return 28; } else if( return_value > 0 ) { return -34; } else { return 0; } return return_value; } ----------------------------------------------------------- This is sorting as if the variables are int's rather than floats, so the frational part is being ignored. Question: How do sort on a float variable this is part of a structure? Thanks Paul |
March 18, 2007 Re: qsort/compare | ||||
---|---|---|---|---|
| ||||
Posted in reply to Paul | Paul skrev: > Hello, I need to sort an array of structures into desending order > by an element declared as a float. Here is my compare function > which im using with Qsort. [Snip code] > This is sorting as if the variables are int's rather than floats, > so the frational part is being ignored. > > Question: How do sort on a float variable this is part of a > structure? int compare_one(const void *v1, const void *v2) { double return_value = (*(struct proform*)v1).eq_rating - (*(struct proform*)v2).eq_rating; if(return_value < 0 ) { return 1; } else if( return_value > 0 ) { return -1; } return 0; } -- Just another homepage: http://damb.dk But it's mine - Bertel |
March 18, 2007 Re: qsort/compare | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bertel Brander | Hi Bertel, thanks your code works fine. Kind regards Paul |
Copyright © 1999-2021 by the D Language Foundation