Как исправить проблему с одним пунктом в цикле for
Мне даны некоторые значения переменных, которые я читаю из файла и выполняю расчет промежуточного итога. Моя цель - узнать, сколько всего вычислений я сделал. Я могу получить правильное число, вычтя 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 ответ
Что-то вроде этого. Он использует временную переменную, которая является следующим значением sum и прерывает цикл, если это значение слишком велико.
for (counter = 0; ; ++counter)
{
int temp = sum + a + (counter * b);
if (temp > t)
break; // too big quit the loop
sum = temp;
}
Сейчас counter
а также sum
должны иметь правильные значения в конце вашего цикла.