
Помогите пожалуйста написать код, который будет проверять, попала ли точка в заштрихованную область, или нет. Я тут набросал немного. Код запускается, но показывает неправильные значения.
Помогите пожалуйста написать код, который будет проверять, попала ли точка в заштрихованную область, или нет. Я тут набросал немного. Код запускается, но показывает неправильные значения. double x, y;
cin >> x >> y;
if (x * x + y * y = 2 * fabs(x) && x * y >= 0) {
// входит
} else {
// не входит
} В твоём коде отсутствует проверка того, что точка находится в первом или третьем квадранте. Самый простой вариант такой проверки: #include
#include
using namespace std;
int main() {
const auto r1 = 1.0;
const auto r2 = 2.0;
double x, y;
cin >> x >> y;
if (sqrt(x * x + y * y) > r2) puts("NO");
else if (x * y < 0) puts("NO");
else {
auto x1 = fabs(x) - r1;
if (sqrt(x1 * x1 + y * y) < r1) puts("NO");
else puts("YES");
}
} P.S. Код принимает точку расположенную на границе области как входящую в данную область. #include
int main()
{
double x, y;
std::cin >> x >> y;
bool in_aria = true;
in_aria &= x * x + y * y = 0; //проверка на вхождение в четверть
in_aria &= ((abs(x) - 1) * (abs(x) - 1) + y * y >= 1); //проверка на не вхождение в малые окружности
std::cout