繁体   English   中英

C ++初学者。 用户输入一个数字,并打印该数字的1

[英]C++ beginner. user inputs single digit number, print the sum of 1 to that number

不太确定如何为这个问题加上标题

例如: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 ;

}

我知道这可能还很遥远,但是我想给你们我到目前为止所拥有的。 请帮忙!

  1. 删除if 它不会影响您的代码。 (如果x > 9则破坏它)
  2. sum = sum + i; 否则,您将覆盖其值。 sum += i;更优雅sum += i;

看起来应该像这样:

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 ;
}

正如其他人指出的那样,您可以使用表示以下内容的数学解决方案

从i = 1到n = n *(n + 1)/ 2的sum(i)

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

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

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

而不是覆盖sum = x + i

for(i = 1 ; i <= x ; i++) {
    sum = sum + i; // or sum += i
}
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 ;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM