Добавление элементов из предыдущих итераций для l oop C ++ - PullRequest
1 голос
/ 14 апреля 2020

Я относительно новичок в C ++, поэтому этот вопрос может показаться глупым, поэтому я здесь. Выпуск кода 2019, день 1. Я бы хотел, чтобы данные, считываемые из .txt в void data(), добавлялись в себя и печатались последовательно после каждой итерации. Это то, что я получил до сих пор:

void data() {
    int fuel = 0, forMass = 0, forEach[100], forAll = 0, lines;
    //int MassArr[];
    std::ifstream infile("./Day1Input.txt"); //reading from .txt
    std::string line;


    for (lines = 0; std::getline(infile, line); lines++) {

        fuel = std::stoi(line);
        std::cout << "Module number [" << lines+1 << "]'s Mass = " << fuel << "\n";
        forEach[lines] = fuel / 3 - 2;
        std::cout << "Fuel required = " << forEach[lines] << "\n\n";

        /* *****THIS IS THE TRICKY PART*****
        forMass = (lines>0) ? forEach[lines] =+ fuel / 3 - 2 : forEach[lines];
        std::cout << "Fuel required so far = " << forMass << "\n";

        forAll = forMass += forEach[lines];
        std::cout << "Fuel required for mass and fuel so far = " << forAll << "\n";
        */
    }
}

forMass и forAll не добавляются постепенно с каждой итерацией. Опять же, извините, если это слишком очевидно, но любая помощь очень ценится. Спасибо:)

1 Ответ

1 голос
/ 14 апреля 2020

если вы хотите накапливать значения каждого forEach внутри переменной forMass, в следующей строке что-то не так:

forMass = (lines>0) ? forEach[lines] =+ fuel / 3 - 2 : forEach[lines];

вы можете исправить это так:

forMass += forEach[lines];

вам не нужно проверять строки> 0, если вы не хотите в два раза посчитать значение forEach [lines] на первой итерации.

Более того, выражение:

forEach[lines] =+ fuel / 3 - 2 

не является исправить, если вы хотите увеличить значение в другой раз для каждого [lines], в этом случае вам нужно использовать + =, написанное вами = + не является оператором приращения, просто эквивалентным (= (backspace) +) ie: просто присвоение со знаком плюс (которые ничего не делают в этом контексте).

...