2015-12-12 5 views
0

Я создаю учебное пособие по математике, и для этой части у меня есть массив, массив заполнен 5 случайными числами, между 0 и 9. Вопрос, который я создаю, даст 5 случайных цифр и скажет: «Что такое самое высокое число, которое вы могли бы сделать с этими цифрами?», а затем хранить это число в переменнойКак выбрать максимальное значение из массива?

// These are all Random numbers using the Random method 
    a = num.nextInt(9); 
    b = num.nextInt(9); 
    c = num.nextInt(9); 
    d = num.nextInt(9); 
    e = num.nextInt(9); 
    f = num.nextInt(9); 

    // Asks the question right here (not important right now) 
    // prints out 5 digits here (again, not important right now) 

    g = ans.nextInt(); // this is the users response 

    int h3[] = {a, b, c, d, e, f}; // this array holds the random numbers 
+1

возможно дубликат http://stackoverflow.com/questions/1806816/java-finding-the-highest-value-in-an-array –

ответ

0
Arrays.sort(h3); 
    int maxNo = h3[h3.length-1]. 

Это должно делать то, что вам требуется. Для вашего максимального значения будет установлено значение maxNo. Не забывайте импортировать Java.util. *;

0

Сортировка массива в порядке убывания. Номер будет самым высоким пятизначным числом.

Хотя вы просили 5 случайных чисел, но вы заполняете шестью случайными номерами. Пожалуйста, исправьте это также.

int h3 [] = {a, b, c, d, e, f};

+0

Kid. Дело в том, что я не знаю нисходящий порядок, потому что это случайное число. Я прошу прощения за то, что не смог сосчитать, но я думаю, что, зная ваши незначительные количества java, вы можете понять это. РУКА – tornadoriley

0

Лучше всего я мог думать, делать это было бы сделать int переменные и цикл через массив, и если число больше, чем то, что находится в переменном INT, перезаписать его.

int biggest = -1; //you want this to be negative one originally to ensure it is overwritten 

for (int i = 0; i < num.length; i++) { 
    if (num[i] > biggest) { 
     biggest = num[i]; 
    } 
} 
0

Принятая ответ действительно работает, но плохо сказывается на производительности.

Просто итерации по массиву и сохранить наибольшее количество:

int highest = array[0]; 
for (int i = 0; i < array.length; i++) { 
    if (array[i] > highest) { 
     highest = array[i]; 
    } 
} 

One действительно может сортировать массив, а затем выбрать последний элемент массива:

Arrays.sort(array); 
int max = array[array.length - 1]; 

Это будет делать трюк, но нужно знать, что это приводит к плохим показателям.

Также обратите внимание, что приведенный ниже метод Java 8 выглядит очень медленным. Может быть, он станет относительно быстрее, когда массив станет больше.

return IntStream.of(array).max().getAsInt();