【问题标题】:Negative Integers >Positive Integers? [duplicate]负整数>正整数? [复制]
【发布时间】:2015-10-01 06:48:35
【问题描述】:

在这段代码中,-20 应该是最小值,因为它的负数和离零最远的值对吗?但是当我运行 MinAlgoritm 时,会打印出整数 5。我有一个可以正常工作的 Max 版本,但事实并非如此。怎么会这样?有什么我可以做的改进吗?

class MinAlgorithm
{
public static void main ( String[] args ) 
 {
   int[] array =  { -20, 19, 1, 5, -1, 27, 19, 5 } ;
   int   min;
   // initialize the current minimum
   min = array[0];
   // scan the array
   for ( int index=0; index < array.length; index++ )
     { 
       if (array[index]<min);

       min=array[index];
     }
   // Print out the result
   System.out.println("The minimum of this array is: " + min );
 }
}      

【问题讨论】:

  • 您认为if (array[index]&lt;min); 有什么作用,为什么? (注意悬空的;。)
  • @Andy 它会导致empty statement

标签: java algorithm max min negative-number


【解决方案1】:

改变

   if (array[index]<min);
                        ^
       min=array[index];

   if (array[index]<min)
       min=array[index];

你的额外;结束 if 语句,因此无论array[index]&lt;min 是否为真,总是执行min=array[index];

【讨论】:

    【解决方案2】:

    if (array[index]&lt;min);行中删除分号

    【讨论】:

      【解决方案3】:

      我相信 if 子句后有一个分号,使其无用。这就是为什么 5 是最小值,因为它是最后一个指定为最小值的数字。

      【讨论】:

        【解决方案4】:

        试试这个:)

        class MinAlgorithm
        {
            public static void main ( String[] args ){   
                int[] array =  { -20, 19, 1, 5, -1, 27, 19, 5 } ;
                int   min;
                // initialize the current minimum
                min = array[0];
                // scan the array
                for ( int index=0; index < array.length; index++ ){ 
                    if (array[index]<min){
                        min=array[index];
                    }
                }
                // Print out the result
                System.out.println("The minimum of this array is: " + min );
            }
        }    
        

        您的代码因为那个“;”而无法工作如果之后

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-12-18
          • 1970-01-01
          • 2012-11-16
          • 2021-07-26
          • 2022-01-06
          • 2019-09-22
          • 2014-11-13
          • 1970-01-01
          相关资源
          最近更新 更多