View Code of Problem 106

#include <stdio.h>
#include <math.h>


int main()
{ 
        float x1, x2, y1, y2, r, d, S;
        while(scanf("%f%f%f%f%f", &x1, &x2, &y1, &y2, &r) != EOF)
        {
                d = sqrt((x1 - x2) * (x1 - x2)  + (y1 - y2) * (y1 - y2));
                if(d > 2 * r)
                {
                        printf("相离\n");
		}else if(d == 2 * r)
		{
			printf("相切\n");
		}else if(x1 == x2 && y1 == y2)
		{
			printf("重合\n");
		}else
		{
			S = 2 * (acos(d / 2 / r) * r * r - sqrt(r * r - (d / 2) * (d / 2)) * d / 2);
			printf("相交 %.2f\n", S);
		}
	}
	return 0;
}


            

Double click to view unformatted code.


Back to problem 106