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); } } } }
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.
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With