Как найти сумму чисел введенных с клавиатуры

Необходимо написать программу, которая считывает со стандартного ввода целые числа по одному числу и после первого введённого нуля – выводит сумму полученных на вход чисел.

Не понимаю – где ошибка?

text = int(input("Вводите значение: "))  # вводим элементы массива

while text != (int(0)):  # цикл - до тех пор, пока -text != 0, добавляет значения в массив -a
    a.append(text)  # добавляем значение в массив

    if text == (int(0)):  # если -text == 0, выводим сумму всех элементов массива
        print(sum(a))  # суммируем между собой все элементы массива

user207200's user avatar

user207200

5,0908 золотых знаков23 серебряных знака41 бронзовый знак

задан 7 дек 2020 в 8:04

Alexandr S's user avatar

3

У вас не объявлен список a.
Бесконечный цикл работает не так, как нужно. На каждой итерации цикла после добавления нужно запрашивать новое значение.

text = int(input("Вводите значение: "))  # вводим элементы массива
a = []

while text != 0:  # цикл - до тех пор, пока -text != 0, добавляет значения в массив -a
    a.append(text)  # добавляем значение в массив
    text = int(input("Вводите значение: "))

print(sum(a))  # суммируем между собой все элементы массива

ответ дан 7 дек 2020 в 8:14

ioprst's user avatar

ioprstioprst

1,2187 серебряных знаков17 бронзовых знаков

1

Вы вводите число одни раз в самом начале.

Допустим, вы ввели 9. Далее цикл выполняется, пока 9 != 0, то есть бесконечно, так как новые числа не вводятся. Нужно просто добавить ввод данных в цикл.


Также можно перенести вывод суммы из цикла, чтобы не проверять условие каждый раз.
И ещё, нет никакого смысла в записи int(0)

Например, можно сделать так:

arr = []
num = int(input("Вводите значение: "))
while num != 0:
    num = int(input("Вводите значение: "))
    arr.append(num)

print(sum(arr))

ответ дан 7 дек 2020 в 8:14

NoName's user avatar

NoNameNoName

1897 бронзовых знаков

1

Лучше в данном случае использовать “бесконечный цикл”, чтобы ввод значения не делать два раза в разных местах:

a = []
while True:
    num = int(input("Вводите значение: ")) 
    if num == 0:
        print(sum(a))
        break
    a.append(num)

Ну а ошибки и недочёты вам уже все написали в других ответах.

ответ дан 7 дек 2020 в 8:17

CrazyElf's user avatar

CrazyElfCrazyElf

65.4k5 золотых знаков19 серебряных знаков50 бронзовых знаков

1

Начиная с python-3.8 в язык добавлен walrus operator :=, использование которого может немного сократить объем кода в таких задачах, как в вопросе.

Также можно избежать явного сравнения с 0, полагаясь на неявное приведение к bool.

s = 0
while number := int(input("input: ")):
    s += number
print(s)

ответ дан 7 дек 2020 в 8:28

user207200's user avatar

user207200user207200

5,0908 золотых знаков23 серебряных знака41 бронзовый знак

Hello Everyone!

In this tutorial, we will learn how to Sum of n numbers entered by the user, in the C++ programming language.

Code:

#include <iostream>
using namespace std;

int main()
{
    cout << "nnWelcome to Studytonight :-)nnn";
    cout << " =====  Program to find the Sum of n numbers entered by the user ===== nn";

    //variable declaration
    int n,i,temp;

    //As we are dealing with the sum, so initializing with 0.
    int sum = 0;

    //taking input from the command line (user)
    cout << " Enter the number of integers you want to add : ";
    cin >> n;
    cout << "nn";

    //taking n numbers as input from the user and adding them to find the final sum
    for(i=0;i<n;i++)
    {
        cout << "Enter number" << i+1 << " :  ";
        cin >> temp;
        //add each number to the sum of all the previous numbers to find the final sum
        sum += temp;
    }
    
    cout << "nnSum of the " << n << " numbers entered by the user is : "<< sum << endl;
    cout << "nnn";

    return 0;
}

Output:

C++ adding n numbers entered by the user.

Now let’s see what we have done in the above program.

Program Explained:

Let’s break down the parts of the code for better understanding.

//taking n numbers as input from the user and adding them to find the final sum
for(i=0; i<n ;i++)
{
    cout << "Enter number" << i+1 << " :  ";
    cin >> temp;
        
    //add each number to the sum of all the previous numbers to find the final sum
    sum += temp;
}

One thing to learn from this code is that, when we don’t have to make use of the individual elements entered by the user, there is no need to create and array or any such data structre to store them as this would just lead to wasteage of space.

For example, in the above code, as we need to find the sum of all the numbers, we are taking each of the number entered by the user into the same variable and addiing it to the sum variable and then again making use of that same variable again for the next number and so on.

Keep Learning : )



Задача с Javarush: Напишем программу, в которой нужно вводить с клавиатуры числа и считать их сумму, пока пользователь не введет слово “ENTER”.
Вывести на экран полученную сумму и завершить программу.
Методами я пока никакими не пользуюсь и для меня решение вполне логично:

Scanner numbers = new Scanner(System.in);
        int sum = 0;
        int a = numbers.nextInt();
        
        boolean b = false;
        while(!b) {
            String c = numbers.nextLine();
            b = c.equals("ENTER");
            System.out.println(sum += a);
        }

но оно не проходит проверку, не выводит сумму чисел, не могу понять почему, открыл решение автора:

Scanner scanner = new Scanner(System.in);

        int sum = 0;
        boolean isExit = false;
        while (!isExit) {
            String line = scanner.nextLine();

            if (line.equals("ENTER")) {
                isExit = true;
            } else {
                int number = Integer.parseInt(line);
                sum += number;
            }
        }
        System.out.println(sum);

в принципе все понятно, но оно более сложное, цикл в цикле, не вижу в этом смысла; int number = Integer.parseInt(line) – и не до конца понимаю эту строчку, из объекта сканнер программа будет преобразовывать все в int, я просто создал новый int, т.е. по сути одно и тоже, только разными способами, но главный вопрос, sum += a – схема подсчета одна и та же, но у меня она не работает, что не так?

Обложка к статье "Найти в Python сумму, произведение и среднее арифметическое трёх целых чисел"

На чтение 3 мин Просмотров 2к. Опубликовано

Данная статья посвящена решению задачи на Python, которая заключается в нахождении суммы, произведения и среднего арифметического трёх целых чисел, введенных пользователем с клавиатуры. Решение этой задачи может быть полезным в различных сферах программирования, где требуется обработка числовых данных. В этой статье мы рассмотри два варианта задачи, в первом варианте пользователь вводит три числа по очереди, а во втором вводит сразу три числа через пробел.

Как найти сумму, произведение и среднее арифметическое трёх целых чисел, введённых по очереди

Сначала рассмотрим вариант, в котором пользователь вводит числа по очереди. Для решения задачи в данном случае мы можем написать следующий код:

# получаем три целых числа от пользователя
num1 = int(input("Введите первое число: "))
num2 = int(input("Введите второе число: "))
num3 = int(input("Введите третье число: "))

# вычисляем сумму, произведение и среднее арифметическое
summ = num1 + num2 + num3
prod = num1 * num2 * num3
avg = summ / 3

# выводим результаты
print("Сумма чисел:", summ)
print("Произведение чисел:", prod)
print("Среднее арифметическое чисел:", avg)

Здесь мы сначала получаем три целых числа от пользователя, используя функцию input(), и затем преобразуем их в целые числа, используя функцию int(). Затем мы вычисляем сумму, произведение и среднее арифметическое, используя соответствующие математические операции, и выводим результаты с помощью функции print().

Как найти сумму, произведение и среднее арифметическое трёх целых чисел, введённых через пробел

А теперь рассмотрим более сложный вариант, когда пользователь вводит сразу три числа через пробел. Для решения этой задачи, нам необходимо использовать метод split(), который позволяет разделить строку на части по заданному разделителю и вернуть список этих частей. Так как разделителем в методе split() по-умолчанию является пробел, то мы можем не указывать его явно.

Напишем код для решения задачи:

# Получаем ввод от пользователя и разбиваем на три части
input_str = input("Введите три целых числа, разделенных пробелами: ")
num1, num2, num3 = input_str.split()

# Преобразуем каждую часть в целое число
num1 = int(num1)
num2 = int(num2)
num3 = int(num3)

# Вычисляем сумму, произведение и среднее арифметическое трех чисел
sum_nums = num1 + num2 + num3
prod_nums = num1 * num2 * num3
avg_nums = sum_nums / 3

# Выводим результаты
print("Сумма трех чисел:", sum_nums)
print("Произведение трех чисел:", prod_nums)
print("Среднее арифметическое трех чисел:", avg_nums)

Этот код принимает три целых числа, разделенных пробелами, от пользователя и вычисляет сумму, произведение и среднее арифметическое этих чисел. Результаты выводятся на экран.

Чтобы реализовать ввод чисел с клавиаутуры нужно воспользоваться классом Scanner из библиотеки пакетов Java. Данный класс нужно импортировать до создания основного класса Main.

Далее в методе мей мы создаем
объект scn класса Scanner. Стандартный поток ввода т.е клавиатура в Java представлен объектом — System.in.

Метод .nextInt() считывает целые числа типа int и присваиеват их в переменную a.

import java.util.Scanner; // импорт класса Scanner

public class Main {

   public static void main(String[] args) {

       Scanner scn = new Scanner(System.in); // объект класса Scanner

       System.out.println(“Введите число А = “);

       int a = scn.nextInt(); // считываем первое введенное число

       System.out.println(“Введите число В = “);

       int b = scn.nextInt();

       System.out.println(“Сумма = ” + (a+b));

   }

}

Решим еще одну подобную задачу. Условие задачи даны стороны треугольника. Найдите периметр треугольника. Решение подобно поэтому привожу только код программы.

import java.util.Scanner;

public class Main1{

   public static void main(String[] args) {

       System.out.println(“Введите сторону А = “);

       Scanner scn = new Scanner(System.in);

       int a = scn.nextInt();

       System.out.println(“Введите сторону B = “);

       int b = scn.nextInt();

       System.out.println(“Введите сторону C = “);

       int c = scn.nextInt();

       System.out.println(“Периметр треугольника равен = ” + (a+b+c));

   }

Добавить комментарий