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。我正在排序浮点数。
答案 0 :(得分:9)
我正在整理漂浮物。
在这种情况下,temp
必须是float
类型:
float temp=pd[i];
否则,每次进行交换时,您都会将pd[i]
截断为int
。
此外,如果您的float
数组可能包含NaN,则在比较时需要额外注意。
答案 1 :(得分:1)
temp
的类型为int
,但您的数组类型为float
...