View Code of Problem 106

#include<stdio.h>
#include<math.h>
void main(){
	double x1,y1,x2,y2;
	double r,d,s,a,r1;
	while(scanf("%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&r)!=EOF){
		if(x1==x2&&y1==y2)
			printf("重合\n");
		else{
			d=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
			r1=r+r;
			if(d==r1)
				printf("相切\n");
			else if(d>r1)
				printf("相离\n");
		
			else{
				a=2.0*acos(d/(2.0*r));
				s=a*r*r-r*r*sin(a);
				printf("相交 %.2lf\n",s);
			}
		}
	}
}

Double click to view unformatted code.


Back to problem 106