C ++初学者。用户输入单个数字,打印该数字的总和1

时间:2016-09-03 19:29:01

标签: c++

并不确定如何标题这个问题

示例:cin>> 5,cout<< 1 + 2 + 3 + 4 + 5

我在大学的c ++课程中,我们刚刚开始。我知道我需要使用for或while循环,但我不知道是什么,以便它打印我正在寻找的是每个数字1到x的总和(x是用户输入的数字)

#include <iostream>
using namespace std;



int main()
{
    int x, i ;
    int sum = 0 ;
    cout << "Please enter a single digit integer: " ;
    cin >> x ;

    for(i = 1 ; i <= x ; i++)
        if(x <= 9)
            sum = x + i ;
    cout << sum << endl ;

}

我知道这可能已经过时了,但我想给你们一些我迄今为止所拥有的东西。请帮忙!

3 个答案:

答案 0 :(得分:4)

  1. 删除if。它不会影响您的代码。 (如果x > 9
  2. ,请将其废弃
  3. sum = sum + i;否则,您只需覆盖其值。更优雅的是sum += i;
  4. 那应该是这样的:

    int main()
    {
        int x;
        int sum = 0;
        cout << "Please enter a single digit integer: " ;
        cin >> x ;
        for(int i = 1 ; i <= x ; i++)
            sum += i;
        cout << sum << endl ;
    }
    

    正如其他人所说,您可以使用陈述

    的数学解决方案

    sum(i) from i=1 to n = n * (n+1) / 2

    int main()
    {
        int x;
        int sum = 0;
        cout << "Please enter a single digit integer: " ;
        cin >> x ;
        cout << x * (x + 1) / 2 << endl ;
    }
    

答案 1 :(得分:1)

使用括号表示循环体。累积

sum += i;  // sum = sum + i

而不是覆盖sum = x + i

for(i = 1 ; i <= x ; i++) {
    sum = sum + i; // or sum += i
}

答案 2 :(得分:1)

int main()
{
    int x = 0, i = 0;
    int sum = 0;
    cout << "Please enter a single digit integer: " ;
    cin >> x ;

    for(i = 1 ; i <= x ; i++)
            sum += i ;
    cout << sum << endl ;

}