Другие языки программирования и технологии

Отметьте 1) четыре точки, из которых никакие три не лежат на одной прямой.

A. S.
A. S.
221
#include <iostream>
using namespace std;
struct point {
double x, y;
friend istream& operator>>(istream& in, point& p);
};
bool f(point a, point b, point c, point d);
int main() {
cout << "\tInput a b c d:\n\n";
point a, b, c, d;
cin >> a >> b >> c >> d;
if (f(a, b, c, d)) cout << "\n Yes!\n";
else cout << "\n No!\n";
cin.sync();
cin.get();
}
istream& operator>>(istream& in, point& p) {
cout << " x: ";
in >> p.x;
cout << " y: ";
in >> p.y;
cout << '\n';
return in;
}
bool f(point a, point b, point c, point d) {
const double eps = 1e-15;
if (fabs((a.x - c.x) * (b.y - c.y) - (b.x - c.x) * (a.y - c.y)) < eps) return false;
if (fabs((b.x - d.x) * (c.y - d.y) - (c.x - d.x) * (b.y - d.y)) < eps) return false;
if (fabs((c.x - a.x) * (d.y - a.y) - (d.x - a.x) * (c.y - a.y)) < eps) return false;
if (fabs((d.x - b.x) * (a.y - b.y) - (a.x - b.x) * (d.y - b.y)) < eps) return false;
return true;
}
АМ
Александр Махнеев
88 656
Лучший ответ
Рандомно (случайно) тыкните и с большой долей вероятности вы угадаете.
1.Отметил.