簡體   English   中英

查找數組中的第二個最小整數。 返回第二個最小整數的錯誤值

[英]Find the second smallest integer in an array. Returns wrong value for 2nd smallest integer

我需要使用java在array找到第二小的數字 我有以下代碼。 它有點工作,但由於某種原因,它不會完全第二次通過數組來找到第二個最小值。 它在第3個索引處停止並返回該值。 正如您所看到的,第二個最小值是在索引14處。任何幫助都將非常感激。 謝謝。

//用於查找數組中第一個和第二個最小數字的Java程序

public class FindSmallest2 
    {
        public static void main(String[] args)
            {
                 int[] values;
                 values = new int[15];   
                 values[0]=341;            
                 values[1]=273;
                 values[2]=278;
                 values[3]=329;
                 values[4]=445;
                 values[5]=275;
                 values[6]=275;
                 values[7]=243;
                 values[8]=334;
                 values[9]=412;
                 values[10]=393;
                 values[11]=299;
                 values[12]=343;
                 values[13]=317;
                 values[14]=265;
                 int small1, small2;
                 small1 = small2 = values[0]; 
                 for(int i = 1; i < values.length; i++) 
                     {
                         if(values[i]<small1) 
                         {
                             small2 = small1;
                             small1 = values[i];
                         }
                     }
                         System.out.println("1st smallest value: "+small1);
                         System.out.println("2nd smallest value: "+small2);
          }
      }

您無需考慮測試數字values[i]並非最小,但小於當前第二個最小數字的情況。

這是一個可能的解決方法:

if (values[i]<small1) {
    small2 = small1;
    small1 = values[i];
} else if (values[i]<small2) {
    small2 = values[i];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM