C/C++

Можете помочь решить задачу по программированию.

Нельзя использовать if else. Только через флаги, тру и фолс
x >= 0 ? ( y >= 0? x*x + y*y <= 16 : x <= 4 && y >= -4 ) : x >= -1 && y <= 0 && y >= -4
Денис Котов
Денис Котов
2 141
Лучший ответ
Юрий Дубовский x*x + y*y <= 16 раз уж на то пошло.
С сектором окружности ничего не поделать, а вот проверку прямоугольника можно сделать иначе - если сдвинуть пересечение координатных осей в центр прямоугольника:

abs(y + 2) <= 2 && abs(x - 1) <= 3 || x >= 0 && y >= 0 && x * x + y * y <= 16
#include <iostream>
#include <cmath>
using namespace std;
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
double radius(const double x, const double y) {
return sqrt(x * x + y * y);
}
int main() {
const auto x = real("x: ");
const auto y = real("y: ");
const auto m = (x >= 0 && y >= 0 && radius(x, y) <= 4)
|| (y <= 0 && y >= -4 && x >= -2 && x <= 4);
cout << boolalpha << m << '\n';
system("pause > nul");
}
double xx,yy;

cout << "Введите xy= "; cin >> xx; cin >> yy;

double R= xx*xx+yy*yy;

((xx>=0.0 && xx<=4.0 && yy>=0.0 && R<=16.0) || (yy<=0.0 && xx<=4.0 && xx>=-2.0)) ? cout << 1 : cout << 0;
x >= -2 && x <=4 && y <= 0 && y >= -4 || x * x + y * y <= 16
может даже так... если уж совсем без if else

upd: x >= -2 && x <=4 && y <= 0 && y >= -4 || x * x + y * y <= 16 && x >= 0 && y >= 0
KO
Kolia Ololoev
11 364
Kolia Ololoev хотя нет, во второй части забыл x > 0 && y > 0