Разобраться с WHILE и DO WHILE - C (СИ)
Формулировка задачи:
Почему если я x+=0.1 ставлю вначале цикла то все норм работает, только вот значение в точке х=1 оно пропускает(ну понятно почему)
А вот если я ставлю x+=0.1 вконце цикла, то оно после х=5 больше не выводит значений
В for же все работает отлично.
Решение задачи: «Разобраться с WHILE и DO WHILE»
textual
Листинг программы
while (x <= 20)
{
if ((fabs(x - 5)) >= 0.01)
{
y = 1.0 / (x - 5);
printf("x=%f\t y=%f", x, y);
}
x += 0.1;
}
Объяснение кода листинга программы
x- переменная типаfloat, значение которой не превышает 20fabs(x - 5)- функция, возвращающая абсолютное значение числа, в данном случае разницу междуxи 50.01- число, которое меньше или равно абсолютному значению разницы междуxи 5y- переменная типаfloat, которая будет содержать результат деления 1 на разницу междуxи 5printf(x=%f\t y=%f, x, y);- функция вывода на экран значенийxиyс запятой между нимиx += 0.1- увеличение значения переменнойxна 0.1- Цикл выполняется до тех пор, пока значение переменной
xменьше или равно 20 и разница междуxи 5 больше 0.01