Sum of Numbers C++

Sum of Numbers C++

本文关键字:C++ Numbers of Sum      更新时间:2023-10-16

我应该写一个程序,要求用户输入一个正整数值。程序应该使用一个循环来获取的和从1到输入的数字的所有整数。例如,如果用户输入50,循环将找到的总和1、2、3、4、…50 .

但是由于某种原因它不工作,我的for循环有问题,但这是我目前为止所做的。

#include <iostream>
using namespace std;
int main()
{
    int positiveInteger;
    int startingNumber = 1;
    int i = 0;
    cout << "Please input an integer up to 100." << endl;
    cin >> positiveInteger;
    for (int i=0; i < positiveInteger; i++)
    {
        i = startingNumber + 1;
        cout << i;
    }
    return 0;
}

我现在只是不知道为什么它不能正常工作。

这个循环很棒;是循环里面的东西出了问题。您需要一个名为sum的变量,并且在每一步中,将i+1添加到sum。在循环结束时,sum将有正确的值,因此打印它。

try this:

#include <iostream>
using namespace std;
int main()
{
    int positiveInteger;
    int startingNumber = 1;
    cout << "Please input an integer upto 100." << endl;
    cin >> positiveInteger;
    int result = 0;
    for (int i=startingNumber; i <= positiveInteger; i++)
    {
        result += i;
        cout << result;
    }
    cout << result;
    return 0;
}

我有一个不需要循环的公式。我是在试图找到阶乘公式时发现的:

#include <iostream>
using namespace std;
int main() {
    unsigned int positiveInteger;
    cout << "Please input an integer up to 100." << endl;
    cin >> positiveInteger;
    cout << (positiveInteger * (positiveInteger + 1)) / 2;
    return 0;
}

您可以尝试:

int sum = startingNumber; 
for (int i=0; i < positiveInteger; i++) {     
    sum += i;
}
cout << sum;

但是更容易的是注意和1+2+...+n = n*(n+1) / 2,所以你根本不需要循环,只使用公式n*(n+1)/2

mystycs,你正在使用变量i来控制你的循环,然而你正在编辑循环内的i的值:

for (int i=0; i < positiveInteger; i++)
{
    i = startingNumber + 1;
    cout << i;
}

试试这个:

int sum = 0;
for (int i=0; i < positiveInteger; i++)
{
    sum = sum + i;
    cout << sum << " " << i;
}
int result = 0;

 for (int i=0; i < positiveInteger; i++)
    {
        result = startingNumber + 1;
        cout << result;
    }

首先,您有两个同名的变量i。这会引起混淆。

第二,您应该声明一个名为sum的变量,其初始值为零。然后,在循环中,您应该向它添加从1到(包括positiveInteger)的数字。之后,您应该输出sum .

您只是在循环中更新i的值。i的值也要每次加一次。

for循环中更新i的值永远不是一个好主意。for循环索引只能用作计数器。在你的例子中,在循环中改变i的值会引起各种混乱。

创建变量total保存到i的数字之和。

 for (int i = 0; i < positiveInteger; i++)
        total += i;