Вывести максимальное число элементов массива
Здравствуйте!
Вводится последовательность из пяти чисел. Напишите сценарий, в котором определяется число максимальных элементов. Данные ввести могу,а вот результат не выводится(только начал изучать,извините за плохой код) <html> <head><meta charset="utf-8"> <script language="JavaScript"> var array = new Array(5); var i; for(i=0;i<=5;i++) { array[i]=prompt("Введите " +i+" -е число:"); } function nummax (array) { var m= v[0] var k=1 for (var z=1; z <= v.length-1; z++) { if (v[z] > m) {m= v[z]; k=1} else if (v[z] == m) k++ } return k document.write ("Сумма ", m) } </script> </head> <body> </body> </html> |
Получить максимальное значение массива можно так:
var arr = [3, 5, 10, 8, 2], max = Math.max.apply(null, arr); alert(max); |
Ruslan_xDD,
спасибо за элегантность,но я пытаюсь сам сделать, что не так в моем коде?может я не так вывожу данные? |
Цитата:
|
рони, знаю, но как один из многих вариантов подойдёт. :)
unkind, потому что return возвращает значение, т.е., после него код в ф-ции уже не срабатывает, а у Вас там document.write. |
Ruslan_xDD,
вот я и спросил как вывести грамотно,убрал ретурн и ничего |
Цитата:
var arr = [3, 5, 1, 8, 20], max = arr.sort()[0]; alert(max); |
рони, ой всё :D Ошибся, бывает.
unkind, а вызов функции где? :) |
:)
var arr = [3, 5, 1, 8, 20], max = arr.sort(function(a,b) { return b - a // а для ТС return +b - +a })[0]; alert(max); |
Ruslan_xDD,
так я же пытаюсь вывести в теле функции или нужно отдельно создавать вывод? пробовал через alert и так же ничего |
unkind, так функцию же запустить нужно. :)
nummax(array); |
Ruslan_xDD,
var array = new Array(5); var i; for(i=0;i<=5;i++) { array[i]=prompt("Введите " +i+" -е число:"); } function nummax (array) { var m= v[0] var k=1 for (var z=1; z <= v.length-1; z++) { if (v[z] > m) {m= v[z]; k=1} else if (v[z] == m) k++ } nummax(array); document.write ("Сумма ",m) } если я верно понял |
var array = new Array(5); var i; for(i=0;i<=5;i++) { array[i]=prompt("Введите " +i+" -е число:"); } function nummax (array) { var m= v[0] var k=1 for (var z=1; z <= v.length-1; z++) { if (v[z] > m) {m= v[z]; k=1} else if (v[z] == m) k++ } document.write ("Сумма ",m) } nummax(array); |
Ruslan_xDD,
странно,не выводит результат |
var array = new Array(5), i; for(i = 0; i < array.length; i++) { array[i] = +prompt('Введите ' + i + ' -е число:') || 0; //С помощью оператора "+" преобразуем результат ввода в число //Если преобразованное число будет NaN (bool false), то присваиваем 0 // alert( +'bla' ) -> NaN } function nummax(array) { var i, n = 0; for(i = 0; i < array.length; i++) { if(array[i] > n) { n = array[i]; } } return n; } alert( 'Максимальное число: ' + nummax(array) ); |
Ruslan_xDD,
буду разбираться,в карму кинул) |
а если мне найти количество этих максимальных элементов нужно, то примерно так делать:
function nummax(array) { var i, n = 0; for(i = 0; i < array.length; i++) { if(array[i] > n) { n = array[i]; //ввести дополнительную переменную и в нее сохранять количество ? } } return n; } n.length пытался.... |
unkind, как понять максимальных? В массиве есть максимальные и минимальные? И от кого числа отталкиваться?
Если же нужно получить количество элементов в массиве, то: alert(array.length); |
Ruslan_xDD,
т.е ввожу : 1,1,1,3,3 и мен выводится,что максимальный элемент 3 а всего этих максимальных элементов 2 шт этот скрипт выводит просто максимальный, я думал может в js есть функция count или что-то похожее,length-это количество всех элементов |
var array = new Array(5), i; for(i = 0; i < array.length; i++) { array[i] = +prompt('Введите ' + (i + 1) + ' -е число:') || 0; //С помощью оператора "+" преобразуем результат ввода в число //Если преобразованное число будет NaN (bool false), то присваиваем 0 // alert( +'bla' ) -> NaN } function nummax(array) { var count, i, n = 0; for(i = 0; i < array.length; i++) { if(array[i] > n) { n = array[i]; count = 1; } else if(array[i] == n) { count++; } } return {count: count, max: n}; } var result = nummax(array); alert( 'Максимальное число: ' + result.max + '\nКол-во максимальных чисел: ' + result.count); |
благодарю,в карму +
|
Часовой пояс GMT +3, время: 17:17. |