从输入中添加连续整数(从Python转换为C++)

2024-04-28 14:53:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在我的硬件上请求一些帮助。我想我很快就能搞清楚了。我们的COMPSCI类目前正在从学习Python转向(介绍性)C++。因为这两个词是 >模糊地相似,我们已经被建议,因为我们是初学者,用Python(我们非常熟悉)来编码问题,并用我们刚刚学习的基本知识将它翻译成C++。要解决的问题是一个简单的“在给定正整数输入的情况下,将从1到该数字的连续整数相加”。例如:

>>Enter a positive integer: 10
>>1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
< Python代码(这是成功的),我试图翻译成C++是:

num = int(raw_input("Enter a positive integer: "))
sum = 0
for i in range(1, num):
    sum += i
    print i, "+",
print num, "=", sum+num

和我不成功的C++代码:

#include <iostream>
using namespace std;

int main()
{
    int num;
    int sum;
    int i;
    sum = 0;
    cout << "Please enter a positive integer: " << endl;
    cin >> num;
    for (i=0; 1 <= num; i++)
        {
        sum = sum + i;
        cout << i << "+" << endl;
        }
    cout << num << "=" << sum + num << endl; 
    return 0;
}

但是输出只是一个从0到无穷大,从上到下的无限的,无结尾的加法序列。更糟糕的是,它没有像我想要的那样直线打印。正如你所看到的,我确实试着逐字逐句地翻译它;我认为那是万无一失的。我的for循环一定有问题。由于C++没有像Python那样的“Real'”类,所以我认为中间条件语句(“1和lt;= num;”)将充当范围。为什么我的“=”号没有打印出来?我不明白为什么当它达到“num”时它不会终止。你能帮忙吗?我提前感谢你的答复。


Tags: 代码for硬件integernum建议intsum
3条回答

试试这个。

#include <iostream>
using namespace std;

int main()
{
    int num;
    int sum;
    int i;
    sum = 0;
    cout << "Please enter a positive integer: ";
    cin >> num;
    for (i=0; i < num; i++)
        {
        sum = sum + i;
        cout << i << " + ";
        }
    cout <<num << " = " << sum+num << endl; 
    return 0;
}

固定代码:

#include <iostream>
using namespace std;

int main()
{
    int num;
    int sum;
    int i;
    sum = 0;
    cout << "Please enter a positive integer: " << endl;
    cin >> num;
    // Here you had 1 <= num which was always true for positive num
    // and it did not depend on value of i.
    for (i = 1; i < num; ++i)
        {
        sum = sum + i;
        cout << i << "+";  // Here you had endl which produced newline characters.
        }
    cout << num << "=" << sum + num << endl;-
    return 0;
}

这:

for (i=0; 1 <= num; i++)

应该是:

for (i=0; i <= num; i++)

相关问题 更多 >