Как исправить проблему с одним пунктом в цикле for - PullRequest
0 голосов
/ 09 февраля 2019

Мне даны некоторые значения переменных, которые я читаю из файла и выполняю расчет промежуточных итогов.Моя цель - узнать, сколько всего вычислений я сделал.Я могу получить правильное число, вычтя 1 из своего счетчика в конце, но я бы не хотел этого делать, изменив свое состояние, чтобы оно лучше подходило.Я понимаю, что не использую счетчик в моем состоянии, это проблема?

Пример ввода: a = 10, b = 5, t = 70

Любая помощь будет оценена.Попытался изменить условие на sum

//Reads and calculates a, b and t, and outputs number of dishes to output.txt
while (inFile >> a)
{       
inFile >> b >> t;

for (counter = 0; sum <= t ; counter++)
{
sum += a + (counter * b);
}
outFile << " " << a << "\t\t" << b << "\t\t" << t << "\t\t" << counter -1 << endl; //Output iteration results

//Reset total before next iteration
sum = 0;
}

1 Ответ

0 голосов
/ 09 февраля 2019

Как то так.Он использует временную переменную, которая является следующим значением суммы, и прерывает цикл, если это значение слишком велико.

for (counter = 0; ; ++counter)
{
    int temp = sum + a + (counter * b);
    if (temp > t)
        break; // too big quit the loop
    sum = temp;
}

Теперь counter и sum должны иметь правильные значения в конце вашегоцикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...