需要修复一个简单的循环

时间:2014-02-16 05:35:51

标签: c++

好的我需要编写一个带整数参数的函数,并打印每个数字的总和直到那一点。例如,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.将功能设置为SumOneToN。 2.将x初始化为0。 3.创建一个while循环,声明当x小于我们的参数时,我们取x,将它添加到x + 1(这样我们将当前的x值添加到下一个),打印它,然后我们添加到x循环再次进行,直到我们满足参数。

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

1 3 5 7 ..等等

我不确定我哪里出错了?

6 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:1)

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

int SumToOne(int n) {

    return (n * (n + 1))/2;
}

答案 2 :(得分:0)

嘿,你在Sum&amp;中使用相同的变量作为循环变量

试试这段代码

int add(int n)
{
    int sum=0;

    for(int i=1;i<=10;i++)
        sum=sum+i;

    return sum;
}

答案 3 :(得分:0)

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

答案 4 :(得分:0)

在引号和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;
}

答案 5 :(得分:0)

你可以试试这个:

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

注意:这不会在最后一个号码后打印额外的“+”。