0

Добрый день.Помогите решить задачу.Моя программа считает сумму очков,но по тесту какие-то странные цифры.Что она должна считать?

Данная программа берет в качестве вводных данных количество пройденных уровней и очки за их прохождение и создает соответствующий массив очков.Завершите программу для вычисления и вывода в консоль суммы всех полученных очков. вводные данные 3 1 4 8 результат 13 Первые введенные данные – это количество пройденных уровней, т.е. 3.Следующие 3 ввода данных – баллы, полученные игроком за прохождение каждого уровня. Всего игрок получил 1+4+8 баллов за 3 уровня function main() { //вычислите сумму полученных баллов var levels = parseInt(readLine(),10); var points = new Array() var count = 0; while(count<levels){ var elem = parseInt(readLine(),10); points[count] = elem; count++; } var arr = [elem]; function arraySum (array){ var sum = 0; for (i = 0; i<array.length; i++){ sum+=array[i]; } console.log(sum); } arraySum(arr); //вычислите сумму очков //результат }

2nd Jun 2021, 10:46 AM
Татьяна
Татьяна - avatar
7 Answers
+ 1
Привет! Логика в программе правильная, но оформлена с ошибками: 1. Уберите переменную суммы sum из функции, как она была изначально в примере 2. Зачем создавать новый массив или даже два? Я так и не разобрался... когда уже есть готовый заполненный массив points. С ним и работайте. 3. Удалите соответственно массивы из параметров функции и её вызова в конце (arr и array). Запускайте функцию без параметров.
2nd Jun 2021, 12:49 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Большое спасибо, все заработало) вот только я не поняла, почему эту функцию мы вызываем без параметров?
2nd Jun 2021, 1:14 PM
Татьяна
Татьяна - avatar
+ 1
Наверное из-за того, что мы используем в коде обьявление переменных в виде var. А var делает эти переменные в плане видимости глобальными. Я тут уже не особо разбираюсь. Лучше создать новый вопрос на английском и задать его знатокам. https://learn.javascript.ru/var
2nd Jun 2021, 2:07 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
function main() { //вычислите сумму полученных баллов var levels = parseInt(readLine(),10); // уровни var points = new Array(); var count = 0; //число элементов while(count<levels) { var elem = parseInt(readLine(),10); points[count] = elem; count++; //elem - значения элем-ов } //вычислите сумму очков var arr = points; function arrSum(arr) { var sum = 0; for(var i = 0; i < arr.length; i++) { sum += arr[i]; } console.log(sum); } arrSum(arr) }
5th Dec 2021, 4:47 PM
(this.name)
(this.name) - avatar
0
Спасибо)
2nd Jun 2021, 2:08 PM
Татьяна
Татьяна - avatar
0
Можно в вызов функции написать как параметр points, так работать будет, а если в саму функцию, то выдаст ошибку
2nd Jun 2021, 2:36 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
0
Да, в вызове функции у меня, указан параметр, а в функции нет. Не понятно... ну ладно. Мне много не понятно пока)))
2nd Jun 2021, 2:39 PM
Татьяна
Татьяна - avatar