-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);

上位 2 つの結果のみが適切に返され、残りは 0 として返されます。フロートを並べ替えています。

4

2 に答える 2

9

フロートを並べています。

この場合、次tempのタイプである必要がありますfloat

float temp=pd[i];

そうしないと、スワップを行うたびに切り捨てpd[i]られます。int

また、float配列にNaNが含まれている可能性がある場合は、比較に特別な注意が必要です。

于 2012-04-26T14:22:48.747 に答える
1

tempは型intですが、配列は型floatです..。

于 2012-04-26T14:25:32.690 に答える