Разобраться с 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;                
            }

Объяснение кода листинга программы

  1. x - переменная типа float, значение которой не превышает 20
  2. fabs(x - 5) - функция, возвращающая абсолютное значение числа, в данном случае разницу между x и 5
  3. 0.01 - число, которое меньше или равно абсолютному значению разницы между x и 5
  4. y - переменная типа float, которая будет содержать результат деления 1 на разницу между x и 5
  5. printf(x=%f\t y=%f, x, y); - функция вывода на экран значений x и y с запятой между ними
  6. x += 0.1 - увеличение значения переменной x на 0.1
  7. Цикл выполняется до тех пор, пока значение переменной x меньше или равно 20 и разница между x и 5 больше 0.01

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы