【问题标题】:Wrong output for sum of digits using loop c++ [closed]使用循环c ++的数字总和输出错误[关闭]
【发布时间】:2014-11-09 23:56:36
【问题描述】:

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 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++ 新手,任何帮助将不胜感激。谢谢!

【问题讨论】:

  • sum=number*(number+1)/2; 仅此而已,除了 cin 等。
  • 以 3 为例:1=1, 1+2=3, 1+2+3=6。您正在打印每个部分结果。但如上所述:不需要循环。

标签: c++ loops numbers sum output


【解决方案1】:

你正在写cout &lt;&lt; suminside你的循环。这意味着每次循环运行时都会得到一个数字输出(实际上是写1 然后3 然后6 将所有内容混合在一起并输出为136)。将该语句移到以下} 之后。

【讨论】:

    【解决方案2】:

    以下是获得 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-11
      • 2020-10-24
      • 1970-01-01
      • 2017-05-19
      • 2023-03-03
      • 2015-09-04
      相关资源
      最近更新 更多