View Code of Problem 67

#include<stdio.h>
int main(){
	float x1,y1,x2,y2,k1,k2;
	while(scanf("%f %f %f %f",&x1,&y1,&x2,&y2)!=EOF){
		float x3,y3,x4,y4;
		scanf("%f %f %f %f",&x3,&y3,&x4,&y4);
		if(x1==x2&&x3==x4){
			if(x2==x3){
				printf("Yes\n");
			}else{
				printf("No\n"); //相交就Yes 
			}
		}else{
			k1=(y2-y1)/(x2-x1);
			k2=(y4-y3)/(x4-x3);
			if(k1!=k2){ //斜率不同 比相交 
				printf("Yes\n"); 
			}else{//斜率相同时 
				if(k1*(x3-x1)+y1==y3){
					printf("Yes\n");  //第三个点与一二点组成的线相交  
				} else{
					printf("No\n");
				}
			}
		}
		
		
	}
	
	
	return 0;
}

Double click to view unformatted code.


Back to problem 67