2017-04-23 10 views
1
for (int i = 0; i < newBookCatalog.length; i++) { 
    double currentMin = newBookCatalog[i].getPrice(); 
    int currentMinIndex = i; 
    for (int j = i + 1; j < newBookCatalog.length; j++) { 
     if (currentMin > newBookCatalog[j].getPrice()) { 
      currentMin = newBookCatalog[j].getPrice(); 
      currentMinIndex = j; 
     } 
    } 
    if (currentMinIndex != i) { 
     BookCatalog2 temp = newBookCatalog[currentMinIndex]; 
     newBookCatalog[currentMinIndex] = newBookCatalog[i]; 
     newBookCatalog[i] = temp; 
    } 
} 
//Display the newly sorted array of objects 
for (int i = 0; i < newBookCatalog.length - 1; i++) { 
    System.out.printf("%-8d%-20s%-19s%-18.2f\n", newBookCatalog[i].getItemNumber(), newBookCatalog[i].getProduct(), newBookCatalog[i].getCategory(), newBookCatalog[i].getPrice()); 
} 
break; 

これは私がこれまで持っていたものです。私は価格を高めて配列をソートしようとしていますが、プログラムが実行されると、最後の項目以外のすべてが表示されます。私はそれを数回修正しましたが、私は最後のアイテムを表示する並べ替えを得ることができません。私は初心者レベルで、テキストブックの基本的な構造をコピーし、インストラクターの助けを借りました。私の教科書の例はintの配列のためのものでした。これは少し複雑でした。価格を上げることでオブジェクトの配列を並べ替える

ヒントやヒント?

+0

はこの宿題ですか?自分でソートアルゴリズムを実装する必要がありますか? –

答えて

1

私はそれを数回修正しましたが、最後の アイテムを表示することはできません。

あなたはむしろそれが
i < newBookCatalog.lengthあるべきnewBookCatalog.length-1を実行して、最後の項目を除くしています。これに

for (int i = 0; i < newBookCatalog.length-1; i++) 

:この

変更

for (int i = 0; i < newBookCatalog.length; i++) 
+1

うわー、私はそれを逃したと信じていない!本当にありがとう! –

+0

@JonBloodworth大歓迎ですが、あなたの問題を解決した場合は^^をマークするのを忘れないでください^^ –

関連する問題