Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java: Finding the highest value in an array

Tags:

java

arrays

max

For some reason this code is printing three values for the highest value in the array when I'm trying to print just one (which is 11.3). Can someone please explain to me why it is doing this?

Thanks.

import java.util.Scanner;  public class Slide24 {     public static void main (String [] args)     {         Scanner in = new Scanner(System.in);          double[] decMax = {-2.8, -8.8, 2.3, 7.9, 4.1, -1.4, 11.3, 10.4,             8.9, 8.1, 5.8, 5.9, 7.8, 4.9, 5.7, -0.9, -0.4, 7.3, 8.3, 6.5, 9.2,             3.5, 3, 1.1, 6.5, 5.1, -1.2, -5.1, 2, 5.2, 2.1};          double total = 0, avgMax = 0;          for (int counter = 0; counter < decMax.length; counter++)         {          total += decMax[counter];         }          avgMax = total / decMax.length;          System.out.printf("%s %2.2f\n", "The average maximum temperature for December was: ", avgMax);          //finds the highest value         double max = decMax[0];          for (int counter = 1; counter < decMax.length; counter++)         {          if (decMax[counter] > max)          {           max = decMax[counter];           System.out.println("The highest maximum for the December is: " + max);          }          }             } } 
like image 873
HelloWorld Avatar asked Nov 27 '09 04:11

HelloWorld


People also ask

How do you find the highest value in an array?

To find the largest element from the array, a simple way is to arrange the elements in ascending order. After sorting, the first element will represent the smallest element, the next element will be the second smallest, and going on, the last element will be the largest element of the array.


1 Answers

It's printing out a number every time it finds one that is higher than the current max (which happens to occur three times in your case.) Move the print outside of the for loop and you should be good.

for (int counter = 1; counter < decMax.length; counter++) {      if (decMax[counter] > max)      {            max = decMax[counter];      } }  System.out.println("The highest maximum for the December is: " + max); 
like image 145
Toji Avatar answered Sep 18 '22 15:09

Toji