Я бы хотел попросить помочь с моим HW. Я думаю, что я действительно близок к тому, чтобы понять это. Наш класс 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 до бесконечности, идущая сверху вниз. Еще хуже то, что он печатался не по прямой линии, как я хочу. Как видите, я буквально пытался перевести это слово в слово; Я думал, что это будет надежно. Что-то должно быть не так с моим циклом. Так как в C ++ нет собственного класса для «range», как в Python, я думал, что оператор среднего условия («1 <= num;») будет действовать как диапазон. Почему мой знак "=" не распечатан? И я не понимаю, почему это не закончится, когда оно достигнет «числа». Думаешь, ты сможешь помочь? Заранее благодарю за ответы. </p>