View Code of Problem 67

#include <stdio.h>
int main()
{
    int x1,y1,x2,y2,x3,y3,x4,y4;
    while(scanf("%d %d %d %d %d %d %d %d",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4)!=EOF)
    {
        //斜率都是为穷大
        if(x1==x2&&x3==x4)
        {
            if(x1==x3)
                printf("Yes\n");
            else
            printf("No\n");

        }
        else//正常斜率
        {

            float k1=1.0*(y2-y1)/(x2-x1);
            float k2=1.0*(y3-y4)/(x3-x4);
            //斜率不相等,则香蕉
            if(k1!=k2)
                printf("Yes\n");
            else //此时斜率相等
            {
                //则看截距
                float b1=y2-k1*x2;
                float b2=y3-k2*x3;
                if(b1==b2)//截距相等则重合
                    printf("Yes\n");
                else//否则平行
                {
                    printf("No\n");
                }
            }
        }
    }
}

Double click to view unformatted code.


Back to problem 67