View Code of Problem 67

#include<iostream>
using namespace std;
// typedef struct
// {
//     /* data */
    
// } P;

int main()
{
    double x1,x2,x3,x4,y1,y2,y3,y4;
    while( cin>>x1>>y1 )
    {
        cin>>x2>>y2>>x3>>y3>>x4>>y4;
        
        int flag = 0;//不相交

        //首先判断两条线是否垂直的
        if( x1==x2 && x3==x4 )
        {
            //有两种情况
            //1.相交
            if( x1==x3 )flag = 1;
        }
        //斜率是否为0
        else if( y1 == y2 && y3 == y4 )
        {
            if( y1 == y3 )flag =1 ;
        }
        else
        {
            //再考虑一种就可以了

            double d1,d2;

            if( x1==x2  )
            {
                if( x3!=x4 )
                {
                    flag = 1 ;
                }

            }else if ( x3==x4 )
            {
                if( x1!=x2 )
                flag = 1;
            }
            else            
            {
                d1=(y1-y2)/(x1-x2)*1.0;
                d2=(y3-y4)/(x3-x4)*1.0;
                // cout<<"d1="<<d1<<" "<<"d2="<<d2<<endl;
                if( d1 != d2 )flag = 1;
            }
        }
        if( flag )cout<<"Yes"<<endl;
        else cout<<"No"<<endl;

    }    
}

Double click to view unformatted code.


Back to problem 67