#c #for-loop
#c #for-цикл
Вопрос:
Я не уверен, почему, но программа прекращает уменьшение при Number = -12.75. Программа должна выполняться до тех пор, пока число = -50.0.
#include <iostream>
// create variables to be used in the loops
float Number = 50.0; // starting Number
int Counter1 = 0; // counter for .25 decrements
int Counter2 = 0; // counter for 1 decrements
std::cout << 'n' << Number << 'n';
// loop to decrement Number down from 50.0 to -50.0
for (int i = 50; i >= -50; --i)
{
// if statement to determine which loop to use
if ((Counter1 Counter2) % 2 == 0)
{
Number = Number - 0.25;
std::cout << Number << 'n';
Counter1;
}
else
{
Number = Number - 1.0;
std::cout << Number << 'n';
Counter2;
}
}
int TotalCounter = Counter1 Counter2;
std::cout << "nCombined trips through loops: " << TotalCounter << 'n';
Комментарии:
1. Почему вы ожидаете, что
Number
значение достигнет -50? Результат -12,75 выглядит правильным.2. Вероятно, вы захотите внимательно перечитать свой код. Ваш цикл выполняется 100 раз, и каждый 2-й раз он теряет 1
3. Вы проверяете, если
i>=-50
, неNumber
. Если вы хотите, чтобы цикл выполнялся доNumber
значения -50, просто измените условие4. @Tas да, это правильно. Я использовал общее количество счетчиков, чтобы, когда они равны 0 или четны, вычиталось -.25 или -1, когда нечетно.
5. @cigien цель состоит в том, чтобы достичь -50
Ответ №1:
Если ваша цель состоит в том, чтобы остановиться, когда Number
достигнет -50, то вам следует изменить условие, при котором цикл for должен останавливаться. Это должно сработать:
#include <iostream>
// create variables to be used in the loops
float Number = 50.0; // starting Number
int Counter1 = 0; // counter for .25 decrements
int Counter2 = 0; // counter for 1 decrements
std::cout << 'n' << Number << 'n';
// loop to decrement Number down from 50.0 to -50.0
for (int i = 50; Number >= -50; --i)
{
// if statement to determine which loop to use
if ((Counter1 Counter2) % 2 == 0)
{
Number = Number - 0.25;
std::cout << Number << 'n';
Counter1;
}
else
{
Number = Number - 1.0;
std::cout << Number << 'n';
Counter2;
}
}
int TotalCounter = Counter1 Counter2;
std::cout << "nCombined trips through loops: " << TotalCounter << 'n';
Ответ №2:
для получения правильного результата вы должны изменить условие цикла for, которое вы использовали i<=-50.Вместо этого используйте цикл while как: » while (число>-50) «, потому что для достижения числа до -50 требуется больше итераций, чем 101 итерация, которую вы вводите в цикл for. надеюсь, вы поняли это.