5 / 5 / 0
Регистрация: 27.08.2012
Сообщений: 153
1

Сложить все элементы массива

21.05.2013, 21:41. Показов 32437. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function assa()
{
var a = new Array(4,2,3,6,10);
var i;
var sun;
for(i=0;i < a.length;i++)
{
    sun = a[0] + a[1];
    sun = sun + a[i+1];
}
sun = sun / a.length;
return alert(sun);
}
Я знаю, что возвращает NAN из-за a[i+1].

Как же все-таки приплюсовать без NAN?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2013, 21:41
Ответы с готовыми решениями:

Как разделить все элементы одного массива на все элементы другого массива?
Как разделить все элементы одного массива на все элементы другого массива, и вывести все...

Сложить все элементы массива
Всем привет, как сложить все элементы массива? искал на просторах интернета, но всё очень сложно и...

Сложить все чётные элементы массива и разделить их на разность нечётных
я не знал где написать, но нужна не программа, а алгоритм(блок схем). хотя можно и прогу ) алг...

Сложить отдельно все положительные элементы этого массива, отдельно все отрицательные
Написать программу, которая сначала вводит десять чисел в одномерный массив, а затем складывает...

12
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
21.05.2013, 21:53 2
return alert (sun); - это очень оригинально

всякая функция может что-то делать, и может какое-то значение возвращать
либо и то, и другое... но по-отдельности

вы же пытаетесь "возвратить действие", что смешно

итак, возможны три варианта:
1 - функция только действует: тогда alert (sun); и закрывающая фигурная скобка
2 - функция только возвращает: тогда return sun; и закрывающая фигурная скобка
3 - функция и действует, и возвращает: тогда alert (sun);, затем return sun; и закрывающая фигурная скобка
-----

по сути вопроса
задайте изначально сумму равную нулю
и потом просто прибавляйте все элементы массива по очереди
и никаких [i+1] не надо будет
Javascript
1
2
3
4
5
6
7
8
function assa ()
{
var a = new Array (4, 2, 3, 6, 10);
for(var sun = i = 0, li = a.length; i < li i++) sun += a [i]; // всего один оператор, поэтому фиг/скобок не надо
sun = sun / li;
alert (sun);
return sun;
}
* длину массива лучше посчитать один раз, а не заставлять JS-интерпретатор на каждом шаге цикла вычислять её заново
1
5 / 5 / 0
Регистрация: 27.08.2012
Сообщений: 153
21.05.2013, 22:40  [ТС] 3
kalabuni, Если все нормально работает, почему бы и не вернуть действие?(return alert)

Ваш код не работал. Я немного переделал и код начал работать:
Javascript
1
2
3
4
5
6
7
8
9
function assa ()
{
var a = new Array (4, 2, 3, 6, 10);
var li = a.length;
for(var sun = i = 0; i < li; i++) sun += a [i]; // всего один оператор, поэтому фиг/скобок не надо
sun = sun / li;
alert (sun);
return sun;
}
Можно ли как-нибудь реальзованить это: a[i+1]?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
22.05.2013, 00:07 4
Цитата Сообщение от VilDara Посмотреть сообщение
Ваш код не работал.
в строке #5 точка с запятой была пропущена
for(var sun = i = 0, li = a.length; i < li; i++) sun += a [i];
потому и не работал

можно, конечно, предел цикла надо задать length - 1
но зачем?
0
5 / 5 / 0
Регистрация: 27.08.2012
Сообщений: 153
22.05.2013, 00:28  [ТС] 5
kalabuni, Просто нюансы языка хочу изучить.
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4300 / 2091 / 431
Регистрация: 19.07.2009
Сообщений: 3,162
Записей в блоге: 24
22.05.2013, 01:08 6
VilDara, а что Вы, собственно, хотите/хотели?

Ваш код
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function assa()
{
var a = new Array(4,2,3,6,10);
var i;
var sun;
for(i=0;i < a.length;i++)
{
    sun = a[0] + a[1];
    sun = sun + a[i+1];
}
sun = sun / a.length;
return alert(sun);
}
предполагает зависимость только от 1, 2 и a.length элемента массива a.
Допустим, Вы не хотели обращаться к неопределённому элементу a[a.length] и alert в return Вы тоже обсудили. Что происходит в 9 строке?!

От себя
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function assa()
{
var a = new Array(4,2,3,6,10);
var i;
var sun;
sun = a[0] + a[1];
for(i=0;i < a.length;i++)
{
    sun = sun + a[i];
}
sun = sun / a.length;
return (alert(sun),sun);
}
 
document.write(assa());
0
5 / 5 / 0
Регистрация: 27.08.2012
Сообщений: 153
22.05.2013, 09:25  [ТС] 7
Mysterious Light, Я хочу узнать как сделать так, чтобы можно было ПРИБАВИТЬ число к i, и чтобы не возвращало NAN.(a[i+1] -- Как здесь прибавить?)


Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function assa()
{
var a = new Array(4,2,3,6,10);
var i;
var sun;
for(i=0;i < a.length;i++)
{
    sun = a[0] + a[1];
    sun = sun + a[i+1];
}
sun = sun / a.length;
return alert(sun);
}
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
22.05.2013, 09:34 8
вам этого никогда не узнать
потому что никто, кроме вас не понимает, что делает ваша функция

заголовок у вас "сложить все элементы массива"
на самом деле вы в своей функции внутри цикла на первом шаге к сумме двух первых элементов прибавляете третий
а потом - снова то же самое: к первым двум - четвёртый

в последний реальный шаг (который можно сделать без ошибки) вы к первым двум прибавляете последний
в итоге у вас не сумма всех элементов, а всего трёх: первых двух и последнего

и теперь вы ещё хотите, чтобы к этому маразму (к сумме двух первых) добавился ещё и какой-то несуществующий элемент?
у вас всё в порядке с головой?
0
5 / 5 / 0
Регистрация: 27.08.2012
Сообщений: 153
22.05.2013, 09:36  [ТС] 9
Mysterious Light, Ничего особенного не происходит. Вместо того, чтобы задать переменной sun значение равное нулю и посчитать все элементы по очереди, я решил посчитать сначала 2 элемента и занести их в sun, a далее уже прибавлять следующие по очереди.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
22.05.2013, 09:38 10
Цитата Сообщение от VilDara Посмотреть сообщение
я решил посчитать сначала 2 элемента и занести их в sun, a далее уже прибавлять следующие по очереди.
вы по очереди ЗАНОВО к первым двум прибавляете очередной

так что "решили" вы хреновенько
0
5 / 5 / 0
Регистрация: 27.08.2012
Сообщений: 153
22.05.2013, 09:42  [ТС] 11
kalabuni, Я первую сумму хочу кое-где использовать: в последствии вынесу
Javascript
1
 sun = a[0] + a[1];
из цикла и сначала использую сумму первых 2-ух элементов, а потом, чтобы к сумме прибавлялись остальные элементы массива.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
22.05.2013, 12:07 12
Цитата Сообщение от VilDara Посмотреть сообщение
сначала использую сумму первых 2-ух элементов, а потом, чтобы к сумме прибавлялись остальные элементы массива
а почему сумма именно двух первых?
а не трёх, не пяти, не десяти?

логику включите
при варианте сумма = 0 ваша функция сможет обрабатывать любой массив, включая и тот, который состоит из всего одного элемента
а ваша дурацкая затея - минимум 3 элемента требует от массива
0
0 / 0 / 0
Регистрация: 25.12.2019
Сообщений: 1
25.12.2019, 02:03 13
Самое, пожалуй, простое решение

Javascript
1
2
3
4
5
6
7
8
9
let sum = 0,i;
 
let len = 33721;
len = len.toString();
for(i = 0; i < len.length; i++) {
    sum += Number(len[i]);
}
 
console.log(sum);
0
25.12.2019, 02:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2019, 02:03
Помогаю со студенческими работами здесь

Сложить попарно элементы массива, последний сложить с первым
помогите, пожалуйста, попарно сложить элементы массива x, последний элемент сложить с первым и...

Два одномерных массива поэлементно сложить между собой - третий - сложить каждый элементы - вывести на экран
2 одномерных массива - сложить между собой - третий - сложить каждый элементы - вывести на экран....

Сложить отдельно все положительные и отрицательные элементы массива отдельно
Кому не лень помогите пожалуйста сделать эти задачи. Хотя бы несколько. Буду очень признателен. 1)...

Сложить все элементы в массиве
народ, кому не сложно, нужен код на vbs который заполнит массив случайными значениями, сложит все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru