亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從文件中讀取并選擇按價格對存儲的對象數組進行排序不起作用

從文件中讀取并選擇按價格對存儲的對象數組進行排序不起作用

Smart貓小萌 2023-12-30 15:55:46
我真的被困在這里,我不知道為什么我得到了錯誤的選擇排序列表。我將 Pencilbox 對象存儲在兩個不同的數組中,在其中一個數組中我必須按價格對數組進行排序。按價格排序沒有按預期工作,我嘗試了很多方法來修復它,但仍然不起作用。這是我從中提取信息的文本文件-(每個參數如下:鉛筆盒的高度、寬度、價格)12,1,1.4910,2,2.598,1,1.233,3,3.3312,1,1.496,2,3.5010,2,2.59118,2,4.007,2,3.007,3,1.4911,24,2,2.3414,2,6.9910,2,2.598,1,2.35//鉛筆盒的高度、寬度、價格我得到這個輸出:12, 1, 1.497, 3, 1.498, 1, 1.23   <=== 1.49 > 1.23 so that's incorrect12, 1, 1.498, 1, 2.354, 2, 2.34   <=== this one's the same, 2.34 < 2.3510, 2, 2.5910, 2, 2.5910, 2, 2.597, 2, 3.03, 3, 3.336, 2, 3.58, 2, 4.014, 2, 6.99基本上,代碼位于三個不同的文件中,但我在這里將它們組合起來。我標記了發生分離的區域。如果格式看起來有問題,我真的很抱歉,我已盡力修復它。我很感激任何反饋
查看完整描述

1 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

在 SelectionSort() 方法中,內部for j循環應僅用于查找最低索引,并且應在內部循環完成后進行值的交換for j:


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

    int indexLowest = i; 


    for (int j = i + 1; j < length; j++) { 


        if (array[indexLowest].getPrice() > array[j].getPrice()) {

            indexLowest = j;

        }

    }

    Pencilbox temp = array[i];

    array[i] = array[indexLowest];

    array[indexLowest] = temp;

}


查看完整回答
反對 回復 2023-12-30
  • 1 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號