View Code of Problem 106

#include <stdio.h>
#include <math.h>
#define PI 3.1415926
int main(void)
{
    double x1,y1,x2,y2,r;
    while(scanf("%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&r) != EOF)
    {
        double x = x1 - x2;
        double y = y1 - y2;
        double len = sqrt(x * x + y * y);
        if(len == 2 * r)
        {
            printf("相切\n");
        }
        if(len == 0.0)
        {
            printf("重合\n");
        }
        if(len > 2 * r)
        {
            printf("相离\n");
        }
        if(len < 2 * r && len)
        {
            printf("相交 ");
            double m =  2 * acos( 0.5 * len / r);
            double h = sqrt(r * r - len * len / 4.0);
            double area  = (r * r * m - r * r *sin(m));
            printf("%.2lf\n",area);
        }
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 106