-1
do
{
    swap=false;
    for(int i=0; i<256; i++)
    {
    if(pd[i]<pd[i+1])
    {
        int temp=pd[i];
            pd[i]=pd[i+1];
            pd[i+1]=temp;
        swap=true;
        }
    }
}
while(swap);

它只正确返回前两个结果,其余为 0。我正在对浮点数进行排序。

4

2 回答 2

9

我正在整理花车。

在这种情况下,temp必须是类型float

float temp=pd[i];

否则,您每次进行交换时pd[i]都会截断。int

此外,如果您的float数组可能包含NaN,则在比较时需要格外小心。

于 2012-04-26T14:22:48.747 回答
1

temp是 type int,但你的数组是 type float...

于 2012-04-26T14:25:32.690 回答