2015-11-23 2 views
3

В настоящее время я изучаю код C++ с помощью программы веб-страниц, где я занимаюсь курсом. Теперь недавно я получил следующее упражнение:C++ Добавление чисел в Loop Exercise

Использование некоторое время или цикл Do-While, сделать программу, которая предлагает пользователю ввести число и продолжает добавлять их вместе до тех пор, пока пользователь не введет число 0.

Я написал следующий код в надежде, что это принесет упражнение к выводу:

#include <iostream> 
using namespace std; 
int main(void){ 
int sum = 0; 
int number; 
do 
{ 
    cout <<endl; 
    cin >> number; 
    sum += number; 
    cout << "The total so far is: " << sum << endl; 
} while (number != 0); 
cout << "The total is: " << sum << endl; 
} 

Тем не менее, когда я запускаю код, который я получаю следующую обратную связь с веб-сайта (есть две ссылки один слева а другой справа):

Instructions of the exercise and Webpage feedback on the exercise

Можете ли вы сказать мне, что я делаю не так, в качестве альтернативы вы можете предложить альтернативное решение, то код я предоставил? Спасибо за любую обратную связь!

+3

Я предполагаю, что это не ожидает дополнительной новой строки, которую вы вводите с помощью 'cout << endl;'? – TartanLlama

+0

также вы должны напечатать '.' после каждого числа. – Tempux

+0

Это отлично работает на визуальной студии 2013 –

ответ

2

Рабочий код:

#include <iostream> 

using namespace std; 

int main(){ 
    int sum = 0, numbers; 
    do{ 
    cout << "The total so far is: " << sum << endl; 
    cin >> numbers; 
    cout<< "Number: "<< numbers; 
    sum += numbers; 
} while (numbers != 0); 

cout << "The total is: " << sum << endl; 
return 0; 
} 

У вас есть ошибки в линии соиЬ >> End L,;. Кроме того, выход должен соответствовать инструкциям. Вот почему ваш ответ был «неправильным».

+0

http://i.stack.imgur.com/xJoN7.png http://i.stack.imgur.com/kOgw3.png Когда я запускаю этот код, я получаю правильный результат в консоли веб-страницы, а также в визуальной студии, но по какой-то причине, когда я отправляю код для тестирования, он не печатает строки, что приводит к выполнению упражнения неверно. Мое предположение заключается в том, что ошибка связана с веб-страницей. – Noir

+1

Как насчет того, чтобы напечатать 'numbers' вообще? Ожидание может состоять в том, что программа останавливается для ввода после 'cout <<" Number: ";' и после этого вы добавляете 'cin >> numbers'. С текущим ответом вы получаете приглашение ввода до того, как '' Number: "' напечатано, и вы дважды вводите его на консоль: один раз как фактический ввод и один раз в результате 'cout <<" Number: "<< numbers; 'Также описание упражнения и ожидаемые результаты в контролере имеют конфликт: описание перечисляет исходную сумму 0, но не входит в ожидаемый столбец вывода. – sendaran

0

Я предполагаю, что веб-сайт выполняет простую проверку сравнения.

Не могли бы вы удалить первую cout << endl;

Как это было бы ближе к ожидаемому выходу.

Относительно того, почему вы не получаете «общее количество до сих пор», меня озадачило.

Вы видите текст «всего до сих пор» при запуске локально?

0

Вы должны проверить входы ли пользователь числа или символ для убедившись, что добавление операции

1

Я думаю, вы должны разработать точно такой же вывод, как и инструкция.

#include <iostream> 

using namespace std; 

int main(){ 
    int sum = 0, numbers; 
    do{ 
    cin >> numbers; 
    sum += numbers; 
    cout << "The total so far is: " << sum << endl; 
} while (numbers != 0); 

cout << "The total is: " << sum << endl; 
return 0; 
} 
1

Что касается меня, то я бы написать программу следующим образом

#include <iostream> 

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

    std::cout << "Enter a sequence of numbers (0-exit): "; 

    while (std::cin >> number && number != 0) sum += number; 

    std::cout << "The total is: " << sum << std::endl; 
} 

Если вам нужно выводить частичных сумм, то вы можете добавить еще один оператор вывода

#include <iostream> 

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

    std::cout << "Enter a sequence of numbers (0-exit): "; 

    while (std::cin >> number && number != 0) 
    { 
     std::cout << "The total so far is: " << (sum += number) << std::endl; 
    } 

    std::cout << "\nThe total is: " << sum << std::endl; 
} 
Смежные вопросы