Округление до определенных разрядов си
В данном задании вам необходимо написать тело функции is_in, которая определит попадание точки в закрашенную область.
На вход функция получает два числа х и у. Эти числа имеют точность 10−5" data-math-display-mode="false" role="region" tabindex="-1">10−5 , т.е. числа, у которых не больше четырех знаков после запятой.
Функция должна вывести строку "true", если точка попадает в заштрихованную область или попадает на границу, строку "false" - в противном случае.

Вот мой код, не могу понять почему округление не работает и компилятор просто заканчивает программу с 1
#include <stdio.h>
#include <math.h>
void is_in(float x, float y)
{
if (x*x+y*y>=1 && x>1 && y>1)
printf("true");
else
printf("false");
}
int main ()
{
float x,y;
scanf("%f%f", &x, &y);
x= roundf(x*10000)/10000;
y= roundf(y*10000)/10000;
is_in(x, y);
return 0;
}
Ответы (2 шт):
Автор решения: Danis
→ Ссылка
if (x * x + y * y >= 1 && abs(x) <= 1 && abs(y) <= 1)
Если надо чтобы true выводила только для правого - верхнего угла то:
if (x * x + y * y >= 1 && x <= 1 && y <= 1 && x > 0 && y > 0)
Автор решения: gr_new
→ Ссылка
То есть так?
#include <stdio.h>
#include <math.h>
void is_in(float x, float y)
{
if (x * x + y * y >= 1 && x <= 1 && y <= 1 && x > 0 && y > 0)
printf("true");
else
printf("false");
}
int main ()
{
float x,y;
scanf("%f%f", &x, &y);
x=roundf(x*10000)/10000;
y=roundf(y*10000)/10000;
is_in(x, y);
return 0;
}