minimum value in java won't work

后端 未结 4 1692
予麋鹿
予麋鹿 2021-01-24 13:02

I need help because my brain cells cannot find what is wrong with this program! Here\'s the code

     import java.util.*;
      public class student{
      publ         


        
相关标签:
4条回答
  • 2021-01-24 13:33
    int []myArray= new int[num];
    

    int array default elements to 0

    0 讨论(0)
  • 2021-01-24 13:35

    You initialize you array. And then default values are given (every int is initialized 0)

       int []myArray= new int[num];
       int minValue=myArray[0];
    

    it will be 0

    so nothing smaller can be found than zero if you type in positive integers

    Solution First fill your array with the user input THEN do

     int minValue=myArray[0];
    

    Or use Integer.MIN_VALUE.

    0 讨论(0)
  • 2021-01-24 13:42

    When you go through to look for either the minimum or maximum of a set of values, it's better to assume that all values will be larger than a default maximum value (i.e. set your maximum value to the smallest possible integer), and that all values will be smaller than a default minimum value (i.e. set your minimum value to be the largest possible integer).

    The above sounds counterintuitive, but as you iterate through the array, if you come across a value that is "larger" than the maximum, you update your max value. The same idea applies for the minimum (i.e. if you find a value smaller than your minimum). Since both would start out at their logical extremes, you'll be able to find the true minimum/maximum easier.

    The code

    int maxValue=myArray[0];
    int minValue=myArray[0];
    

    implies that both maxValue and minValue are 0, since a primitive integer array will always populate itself with zeroes. Instead, you should try this:

    int maxValue=Integer.MIN_VALUE;
    int minValue=Integer.MAX_VALUE;
    

    For some clarification on those Integer constants, check out Integer.MAX_VALUE and Integer.MIN_VALUE in the API.

    0 讨论(0)
  • 2021-01-24 13:55
    int minValue=myArray[0]; 
    

    because of this line, your minValue is set to 0. So the minimum value would be reset in this method only if the myArray[i] in the below code is less than 0. Otherwise it remains 0.

     for( i=1; i<myArray.length-1;i++) 
            { 
               if( myArray[i]<minValue) 
                {
                  minValue= myArray[i];                
    
                } 
            } 
    
    0 讨论(0)
提交回复
热议问题