問題に対し、以下のようなコードを作成しました。
#include <iostream>
using namespace std;
#define m1 (y2 - y1) / (x2 - x1)
#define m2 (y4 - y3) / (x4 - x3)
int main() {
int n;
double x1, y1, x2, y2, x3, y3, x4, y4;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
if (m1 == m2) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
"abs" や "1e-10" を多くの方が解答に使っておられました。
double 同士の計算で誤差が出ることはあるのでしょうか。
もし誤差がないとしたら何故 "abs" や "1e-10" が使われているのでしょうか。
このコードの改善点なども一緒に指摘していただきたいです。