C++ 我试图计算1和输入数字之间的数字之和

C++ 我试图计算1和输入数字之间的数字之和,c++,numbers,c++17,C++,Numbers,C++17,该程序演示了循环运算符的操作。 自然数之和的计算。引入正整数n。计算从1到n(含)的自然数之和。 检查n的有效性。 这就是我被赋予的工作,但我仍然不知道如何完成它,这就是我被放弃的地方: #include <iostream> int main() { int n = 0; std::cout << "Enter n: "; std::cin >> n; int sum = 0; for (int i = 1; i &

该程序演示了循环运算符的操作。 自然数之和的计算。引入正整数n。计算从1到n(含)的自然数之和。 检查n的有效性。 这就是我被赋予的工作,但我仍然不知道如何完成它,这就是我被放弃的地方:

#include <iostream>

int main()
{
    int n = 0;
    std::cout << "Enter n: ";
    std::cin >> n;
    int sum = 0;
    for (int i = 1; i <= n; i += 2)
    {
        sum += i;
    }
    std::cout << sum << '\n';
    return 0;
}
#包括
int main()
{
int n=0;
std::cout>n;
整数和=0;

对于(int i=1;ifor
循环的解剖结构如下:
用于(1;2;3)

  • 进入循环时的操作。在本例中,设置
    i=1
  • 循环的结束条件。你似乎也做对了
  • 执行循环每次迭代的操作。在您的情况下,
    i+=2
    将使
    i
    在每次迭代时都像这样:
    1 3 5 7…n
    。获取它?因为您将它递增2
  • 您打算执行的数学运算如下:
    sum=1+2+3+…+n
    。要实现这一点,您只需调整
    for
    循环的第三部分。

    检查循环内部发生了什么而不是仅仅猜测它的一种方法是“探测”其中的变量,比如@molbdnilo提出的,通过添加像
    std::cout
    i+=2
    ——为什么要将循环索引增加2?我尝试了一些不同的东西,但是没有效果,所以我不知道在那里写什么
    从1到n的自然数
    ,这意味着这个数增加了1每一次,你都会得到所有的自然数(而不是像现在这样只得到一半)(int i=1;i‘我尝试了不同的东西,但它不起作用’可能你先尝试了显而易见的东西,当它不起作用时,你错误地认为显而易见的东西不正确,因此你尝试了明显不正确的东西(如
    i+=2
    )一个程序出错的原因有很多,所以不要假设当它出错时你尝试了错误的东西,你可能尝试了正确的东西,但只是在某个地方犯了一些愚蠢的错误。