使用循环c ++输出的数字总和错误

时间:2014-11-09 23:56:37

标签: c++ loops numbers sum output

我被要求创建一个程序,要求用户输入正整数值,而程序使用循环来获取从1到n(用户输入)的所有数字的总和。因此,假设用户输入5,程序将执行1 + 2 + 3 + 4 + 5 = 15

这是到目前为止的代码

#include <iostream>
using namespace std;

int main()
{
   int number; int sum = 0;  // variables
    cout <<"Please input an integer greater than zero\n"
         <<"Please refrain from using a negative integer." <<endl;
    cin  >> number; // user input

  for (int i=1; i <= number; i++) // looping statement
      {
          sum = sum + i;     // formula that takes user digits and finds sum
      cout << sum;
      }

我的问题是,当我编译程序时,例如,我输入3,程序的输出将是“136”

我希望它说1 + 2 + 3 = 6或类似“整数之和为6”这样的东西我只想显示该值的总和。  我是c ++的新手,任何帮助都会受到赞赏。谢谢!

2 个答案:

答案 0 :(得分:2)

您正在循环中编写cout << sum 。这意味着每次循环运行时都会得到一个数字输出(它实际上是1然后是3然后是6,它们会一起刷新并以136形式出现。在以下}之后移动该语句。

答案 1 :(得分:0)

以下是如何获得1 + 2 + 3 = 6输出:

#include <iostream>
using namespace std;

int main()
{
    int number; int sum = 0;  // variables
    cout <<"Please input an integer greater than zero\n"
         <<"Please refrain from using a negative integer." <<endl;
    cin  >> number; // user input

    for (int i=1; i <= number; i++) // looping statement
    {
        sum = sum + i;     // formula that takes user digits and finds sum
        if ( i == number ) 
            cout << i;
        else
            cout << i << "+";
    }

    cout << "=" << sum;
}