Определите попадание произвольной точки в заштрихованную область - C (СИ)
Формулировка задачи:
определите попадание произвольной точки в заштрихованную область.
[ссылка удалена]
Я написал, но когда запускаю программу и ввожу числа то он ни как не реагирует, т.е ввожу допустим:
x=2
y=3 и он мне снова просит ввести "x", помогите найти ошибку
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Russian");
setlocale(LC_ALL, "rus");
double x, y;
while (true)
{
cout << "x="; cin >> x;
cout << "y="; cin >> y;
if (x > -1.5 && x < 1.5 && y < 1 && y > -1)
{
if (sqrt(pow(y, 1.5) + pow(x, 1.5)) < 1 && (abs(y / x) > 0.5))
cout << "Попал" << endl;
else
if (sqrt(pow(y, 1.5) + pow(x, 1.5)) > 1 && (abs(y / x) < 0.5))
cout << "Попал" << endl;
else
cout << "Не попал" << endl;
}
}
return 0;
}Решение задачи: «Определите попадание произвольной точки в заштрихованную область»
textual
Листинг программы
if (x > -1.5 && x < 1.5 && y < 1 && y > -1)
{
if (sqrt(pow(y, 1.5) + pow(x, 1.5)) < 1 && (abs(y / x) > 0.5))
cout << "Попал" << endl;
}
else
{
cout << "Не попал" << endl;
}
Объяснение кода листинга программы
- В условии первого оператора if проверяется, попадает ли точка (x, y) в прямоугольник, ограниченный координатами (-1.5, 1.5) и (1.5, -1.5).
- Во втором условии проверяется, попадает ли точка (x, y) в область, заштрихованную с помощью функции sqrt(pow(y, 1.5) + pow(x, 1.5)), где 1.5 - это экспонента.
- Третье условие проверяет, попадает ли отношение y/x в интервал (0.5, 2), используя функцию abs(y/x) для получения абсолютного значения.
- Если все три условия выполняются, выводится сообщение
Попал. - Если хотя бы одно из условий не выполняется, выводится сообщение
Не попал.