Сначала
while(i < 0); // <--- remove this semicolon
{
cout << i << endl;
i += min ;
}
Затем std::numeric_limits<double>::min()
является положительным значением , поэтому i < 0
никогда не будет истинным.Если вам нужно самое отрицательное значение, вам понадобится
double min = -std::numeric_limits<double>::max();
, но я не знаю, что должна делать ваша строка i += min
.Добавление двух самых отрицательных чисел просто даст -∞, и цикл никогда не закончится.Если вы хотите добавить число, вам понадобится другая переменная, например
double most_negative = -std::numeric_limits<double>::max();
double most_positive = std::numeric_limits<double>::max();
double i = most_negative;
while (i < 0)
{
std::cout << i << std::endl;
i += most_positive;
}
. Конечно, это просто выведет наиболее отрицательное число (-1,8e + 308), и тогда i
станет 0и цикл завершится.