找到数组中的第二个最小整数。返回第二个最小整数的错误值

时间:2014-12-11 11:48:03

标签: java

我需要使用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);
          }
      }

1 个答案:

答案 0 :(得分:7)

您不会考虑测试数字values[i]不是最小的情况,但它比当前第二个最小数字小。

这是一个可能的解决办法:

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