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

Wrong output for sum of digits using loop c++

本文关键字:输出 错误 数字 循环 c++      更新时间:2023-10-16

i需要制作一个程序,要求用户输入一个正整数值,而该程序使用循环来获得从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 zeron"
         <<"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++的新手,如有任何帮助,不胜感激。非常感谢。

您正在循环中写入cout << sum。这意味着每次循环运行时都会得到一个数字输出(它实际上是在写136,所有这些都被合并为136)。将该语句移到以下}之后。

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

#include <iostream>
using namespace std;
int main()
{
    int number; int sum = 0;  // variables
    cout <<"Please input an integer greater than zeron"
         <<"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;
}