C ++ Чтение неизвестного числа целых чисел для cin и вывод суммы - PullRequest
0 голосов
/ 31 августа 2018

Я новичок в c ++ и пытаюсь написать собственную версию программы, которая печатает сумму неизвестного числа целых чисел, прочитанных из cin.

Единственная директива препроцессора, которую я рассмотрел, это #include <iostream>

#include <iostream>

int main()
{
    int numbers;
    int sum = 0;

    for (int i = 0; i < numbers; i++)
    {
        std::cin >> i;
        sum += i;
    }
    std::cout << sum << std::endl;

    return 0;
}

выход

cl /EHsc /W4 sum_of_set_of_integers.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26433 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

sum_of_set_of_integers.cpp
a:\c++ tutorial\michael_dawson\sum_of_set_of_integers.cpp(8) : warning C4700: uninitialized local variable 'numbers' used
Microsoft (R) Incremental Linker Version 14.14.26433.0
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:sum_of_set_of_integers.exe
sum_of_set_of_integers.obj

A:\C++ Tutorial\Michael_Dawson>sum_of_set_of_integers
1
1
1
1
1

Я не могу вырваться из цикла. Было бы очень полезно, если бы вы посоветовали ..

Большое спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Основная проблема заключается в том, что вы не знаете заранее, сколько целых чисел придет, поэтому вы не можете использовать этот цикл for - для numbers.

нет разумного значения.

Вместо этого продолжайте считывать значения до конца ввода:

while (std::cin >> i)
    sum += i;

Если попытка чтения в конечном итоге не удалась, цикл while завершится.

0 голосов
/ 31 августа 2018

Complier предлагает, пожалуйста, прочитайте внимательно.

a:\c++ tutorial\michael_dawson\sum_of_set_of_integers.cpp(8) : warning C4700: uninitialized local variable 'numbers' used

Также, пожалуйста, попробуйте следовать принципу 0-ошибок и 0-предупреждений.

Используя цикл while, продолжайте читать и добавлять целые числа до конца ввода. Обновленный код должен выглядеть следующим образом:

int main()
{
    int sum = 0;
    while (std::cin >> i)
        sum += i;
    std::cout << sum << std::endl;

    return 0;
}
...