需要修复一个简单的循环

Need to fix a simple loop

本文关键字:一个 简单 循环      更新时间:2023-10-16

好的,我需要编写一个函数,该函数采用整数参数并打印每个数字的总和。例如,n = 10 将是 1+2+3+4+5+6+7+8+9+10。

int SumOneToN(int n)
{
    int x = 0;
    while (x <= n)
    {
        cout << x+(x+1) << " ";
        x++;
    }
    cout << endl;
}

这到底是怎么回事呢?1. 将函数设置为总和一到。2. 将 x 初始化为 0。3. 创建一个 while 循环,当 x 小于我们的参数时,我们取 x,将其添加到 x+1(以便我们将当前的 x 值添加到下一个),打印它,然后我们添加到 x 以使循环再次进行,直到我们满足参数。

无论如何,这就是我认为它应该工作的方式。实际返回的是:

1 3 5 7.. 等

不确定我哪里出错了?

试试这个:

int SumOneToN(int n)
{
    int x = 1, sum=0;
    while (x <= n)
    {
        sum=sum+x; 
        cout << sum << " ";
        x++;
    }
    cout << endl;
    return sum;
}

为什么不使用一些数学,而不是首先有循环?

int SumToOne(int n) {
    return (n * (n + 1))/2;
}
int SumOneToN(int n)
{
    int sum=0;
    for(int x=1;x<=n;x++)
    {
        sum+=x; 
        cout << sum << " ";
    }
    cout << endl;
    return sum;
}

倒逗号和 cout x 中写下"+"号;在 while 循环之前写一次。如果你想通过SUM来做到这一点,你必须引入另一个变量,上面的解决方案是公平的。

#include <iostream>
using namespace std;
int SumOneToN(int n)
{
    int x = 1;
    cout << x ;
    x++;
    while (x <= n)
    {
        cout << " + " << x ;
        x++;
    }
    cout << endl;
}
int main()
{
    int x;
    cin >>x;
    SumOneToN(x);
    return 0;
}

你可以试试这个:

int SumOneToN(int n){
    int sum=n,x=1;
    while(x<n){
        cout<<x<<"+";
        sum+=x;
        x++;
    }
    cout<<x;
    return sum;
}

注意:这不会在最后一个数字后打印额外的"+"。

嘿,

你对 Sum 使用相同的变量 &作为循环变量

试试这个代码

int add(int n)
{
    int sum=0;
    for(int i=1;i<=10;i++)
        sum=sum+i;
    return sum;
}
相关文章: