У меня есть простая задача: «Напишите значение y с помощью следующей формулы для диапазона между xmin и xmax с разностью dx.Единственная проблема, с которой я столкнулся, заключается в том, что при использовании while с плавающей точкой, например, в коде, который я собираюсь предоставить, я получаю на единицу меньше выходных данных y, чем должен был.Для следующего кода
#include <stdio.h>
int main() {
float x,xmin,xmax,dx,y;
printf("Input the values of xmin xmax i dx");
scanf("%f%f%f",&xmin,&xmax,&dx);
x=xmin;
while(x<=xmax) {
y=(x*x-2*x-2)/(x*x+1);
printf("%.3f %.3f\n",x,y);
x=x+dx;
}
}
для входа (-2 2 0,2) я получаю вывод только до 1,8 (это 20 выходов), а не до 2. Но когда я использую double вместо float всеработает просто отлично (имеет 21 выход).Есть ли что-то, связанное с условием while, о котором я не знаю?