2011-12-08 62 views
0

在此先感谢。当我为这个数组输入一个最小值时,我无法弄清楚为什么我的代码会给我带来麻烦。它似乎保留最初的0值,但我不知道如何解决这个问题。 Max工作正常。我是否在程序的错误部分设置了最大值和最小值?另外,这是我对数组的第一次任务,所以我可能在稍后打印下标时遇到一些问题。数组返回0的最小值(目标是查找最大值和最小值)

再次感谢!

编辑 - 这就解决了这个问题,据我所知。感谢丹W.

for (int i = 0; i < NUMBER_OF_ELEMENTS; i++) { 
     System.out.print("Enter a new number. This will continue until " 
       + "you reach the size of the array. "); 
     arrayOfNumbers[i] = keyboard.nextInt(); 
    } 
      int max = arrayOfNumbers[0]; 
      int min = arrayOfNumbers[0]; 

package program8; 

import java.util.Scanner; 

public class arrayPrint { 

    public static void main(String[] args) { 
     final int NUMBER_OF_ELEMENTS; 
     Scanner keyboard = new Scanner(System.in); 
     System.out.print("Enter the amount of numbers the array will read in. "); 
     NUMBER_OF_ELEMENTS = keyboard.nextInt(); 
       int arrayOfNumbers[] = new int[NUMBER_OF_ELEMENTS]; 
       int max = arrayOfNumbers[0]; 
       int min = arrayOfNumbers[0]; 
     for (int i = 0; i < NUMBER_OF_ELEMENTS; i++) { 
      System.out.print("Enter a new number. This will continue until " 
        + "you reach the size of the array. "); 
      arrayOfNumbers[i] = keyboard.nextInt(); 
     } 
     for (int i = 0; i < arrayOfNumbers.length; i++) { 
      if (max <= arrayOfNumbers[i]) 
       max = arrayOfNumbers[i]; 
     } 
     for (int i = 0; i < arrayOfNumbers.length; i++) { 
      if (min >= arrayOfNumbers[i]) 
       min = arrayOfNumbers[i]; 
     } 
       System.out.print(+max+ "max and " +min+ " min"); 
     } 


} 

回答

1

什么样的价值观,你输入?因为一个int有一个默认值0:here 所以,如果你只输入正数,最小将始终为0

为了避免这种情况,以后你有用户输入的数字初始化最小和最大,那么最大和最小值不会默认为0.

+0

像上面那样? (我不知道如何在评论中放置代码,但它没有看起来很糟糕,所以它在编辑中,在原始代码之上。我是这样工作的。我之前已经尝试过,但它没有工作,因为我在它之内第一个for循环的括号,谢谢!看起来是否正确? – user1082706

+0

是的,我当时只输入正数,谢谢 – user1082706

+0

是的,这看起来不错,希望它可以工作,请接受答案,如果这解决了您的问题 –