Всякий раз, когда я пытаюсь запустить код, он говорит об ошибке во время выполнения. Как я могу это исправить. (Хакерранк) - PullRequest
0 голосов
/ 03 мая 2020

Я новичок здесь и Hackerrank. Я пытаюсь решить проблему с простой суммой массива:

Given an array of integers, find the sum of its elements.

For example, if the array , , so return .

Function Description

Complete the simpleArraySum function in the editor below. It must return the sum of the array elements as an integer.

simpleArraySum has the following parameter(s):

ar: an array of integers
Input Format

The first line contains an integer, , denoting the size of the array.
The second line contains  space-separated integers representing the array's elements.

Constraints


Output Format

Print the sum of the array's elements as a single integer.

Я пытаюсь найти решение, но пока не могу найти решение. Блокнот jupyter. Он говорит:

Traceback (most recent call last):
  File "Solution.py", line 34, in <module>
    result = simpleArraySum(ar)
  File "Solution.py", line 13, in simpleArraySum
    amount=int(input())
EOFError: EOF when reading a line

На кнопке вывода написано «нет ответа на стандартный вывод». Вот мой код:

def simpleArraySum(ar):
    #
    # Write your code here.
    #
    amount=int(input())

    nums=list(map(int,input().split()))

    sums=0

    for i in nums:

        sums+=i

    print(sums)

Ответы [ 3 ]

0 голосов
/ 03 мая 2020

Это должно работать просто отлично. Просто скопируйте этот код и вставьте, и вы готовы к go:

def simpleArraySum(ar):
    #
    # Write your code here.
    #
    sums=0
    for i in nums:
        sums+=i
    return sums

amount = int(input())
nums = list(map(int,input().split()))
print(simpleArraySum(nums))

Я ничего не делал, я просто прочитал ввод за пределами функции.

0 голосов
/ 03 мая 2020

Это должно хорошо с вами работать:

amount=int(input())
nums=list(map(int,input().split()))
sums=0
for i in nums:
    sums+=i
print(sums)

Проблема, что у вас есть только одна проблема:
1. Вам просто нужно сложить все элементы данного массива, Просто сумма , вам не нужно читать ввод от пользователя. Это то, что я изменил в вашем коде, затем удалить все и написать код после того, как я изменил и должен работать, и все будет хорошо.

0 голосов
/ 03 мая 2020

Вы можете сделать это;

def sum_array(arr):
    total = 0
    for i in arr:
        total += i
    return total

Есть некоторые проблемы с вашим кодом.

  • Вы хотите, чтобы массив передавался в функцию, но вы также хотите, чтобы пользователь входные значения.
  • Вы приводите ввод к целому числу, но после этого вы разделяете ввод.

Обратите внимание, что есть много способов решить эту проблему без написания собственной пользовательской функции.

...