Я пишу программу, которая выводит сумму пользовательских входных целых чисел, разделенных пробелами (не более 100). Я должен читать значения в массив таким образом, чтобы вход «1 2 3» выдавал «6».cout не выполняется вне цикла for
Это то, что я до сих пор:
#include <iostream>
using namespace std;
int main() {
int i= 0;
int total = 0;
int input[100];
cout << "Please enter a series of integers, space separated, that you would
enter code here`like to calculate the sum of: " << endl;
for(; i < 100; i++)
{
cin >> input[i];
total += input[i];
}
cout << "The sum of these values is: " << total << endl;
getchar();
return 0;
}
кодированный, как это, он не печатает всего. Если Ioutout в конце цикла for, то скомпилируйте и введите 1 2 3, он печатает 1 3 6. Это то, чего я ожидал бы.
Кроме того, когда я устанавливаю размер массива в 5 и запускаю его (закодированный как есть), я понял, что если бы я нажал enter после каждого значения, он напечатает сумму пяти чисел.
Но мне нужно это для чтения значений, разделенных пробелами, а не значений, разделенных символом новой строки. Как я могу изменить это, не прибегая к использованию материала, который я еще не изучил (векторы, указатели ...)?
Любые подсказки, советы или критические замечания были бы оценены!
Ваш код должен работать с пробелом или новой линией между номерами. Вам просто нужно ввести все 100 из них, цикл не заканчивается, когда вы нажимаете Enter. – Barmar
Я бы предложил добавить какой-то код выхода, чтобы преодолеть проблему, отмеченную Barmar, например, ввести «e». Продолжайте вводить ввод, пока не увидите это, и оставьте цикл for. –