Volume0-0021 Parallelism
二つの直線が平行かどうか判定する、という問題。
単純に傾きを求めて、比較すればよいのだが、wrongと表示されてしまった。
座標をdoubleではなく、floatにしたらacceptされた。
#include<stdio.h> typedef struct point{ float x; float y; }point; int main(){ int n,i; point A,B,C,D; float m1,m2; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%f %f",&A.x,&A.y); scanf("%f %f",&B.x,&B.y); scanf("%f %f",&C.x,&C.y); scanf("%f %f",&D.x,&D.y); m1=(A.y-B.y)/(A.x-B.x); m2=(C.y-D.y)/(C.x-D.x); if(m1==m2)printf("YES\n"); else printf("NO\n"); } return 0; }
なぜdoubleはダメなんだろう。気になる。