Задача. Принадлежит ли точка [latex]\left(x;y \right)[/latex] фигуре на рисунке?
Входные данные
Два числа [latex] x[/latex], [latex]y[/latex] — координаты точки.
Выходные данные
Слово «YES», если точка принадлежит треугольнику и «NO» , если не принадлежит.
| [latex]x[/latex] | [latex]y [/latex] | Результат | 
| 4 | -2 | NO | 
| 2 | 1 | YES | 
| 0 | 3 | YES | 
| 5 | 0 | NO | 
| 0 | -1 | NO | 
Код программы
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <iostream> #include <cmath> using namespace std; int main() { 	double x, y; 	cin>>x>>y; 	if ((abs(x)+y<=4) && (y>=0)){ 		cout<<"YES"; 	} 	else cout<<"NO"; 	return 0; } | 
Код программы на ideone.com
Решение
Точка будет принадлежать треугольнику только при таких [latex]x[/latex] и [latex]y[/latex], что сумма их модулей не превышает 4. При выполнении условия выводим на экран: «YES». В противном случае — «NO».
 
						
Мне понравилось как Вы лихо завернули с симметрией по [latex]x[/latex].
Вот только зачем было заворачивать ещё и по [latex]y[/latex]. Там ведь нет второй оси симметрии.
В результате программа выдаёт, что точка (0;-1) принадлежит фигуре. Добавьте к тестам.
Пожалуйста, будьте умницей, ограничьтесь одним условным оператором (или тернарной операцией). И не меняйте значение переменных. Просто напишите одно очень хитрое условие.
Да! Координаты int это плохо. Исправьте на double.
Спасибо, исправлено.
Хорошо получилось.
Зачтено.