0

3つの異なる配列で最小値を見つけようとしていますが、正しくないことがわかりません。たとえ最小であっても、真ん中の配列を返すことはないようです。常に0または2のいずれかです。私の論理エラーは何のようですか?

int smallest;
for(int i = 1; i < 3; i++)
{
    if(queue[i].getCount() < queue[0].getCount())
      smallest = i;
    else
      smallest = 0;
}
4

1 に答える 1

1

コードのエラーを考えると、何をしようとしているのかを確認するのは少し難しいです。

私はあなたがこのようなものがもっと欲しいと思うでしょう:

int smallest = queue[0].getCount();
for(int i = 1; i < 3; i++)
{
    if(queue[i].getCount() < smallest)
        smallest = queue[i].getCount();
}

代わりに結果のインデックスが必要な場合は、次のようにしてみてください。

int smallest = 0;
for(int i = 1; i < 3; i++)
{
    if(queue[i].getCount() < queue[smallest].getCount())
        smallest = i;
}
于 2012-12-12T05:58:15.430 に答える