View Code of Problem 106

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

}

Double click to view unformatted code.


Back to problem 106