解题思路: 1.判断矩形是否存在

                2.判断相交类型


注意事项:

参考代码:

#include <stdio.h>

typedef struct{

   double x;

   double y;

} point;

double min(double a,double b);

double max(double a,double b);

int main()

{

   point p[4];    //存放四个点的坐标

   double x1,x2,y1,y2;

   int i;

//    读入两个矩形的四个点

   for(i=0;i<4;i++){

       scanf("%lf %lf",&p[i].x,&p[i].y);

   }

   x1=min( max( p[0].x, p[1].x ), max( p[2].x, p[3].x ) );

   x2=max( min( p[0].x, p[1].x ), min( p[2].x, p[3].x ) );

   y1=min( max( p[0].y, p[1].y), max( p[2].y, p[3].y ) );

   y2=max( min( p[0].y, p[1].y), min( p[2].y, p[3].y ) );

//    判断给定的点是否能构成矩形

   if((p[0].x-p[1].x && p[2].x-p[3].x) && (p[0].y-p[1].y && p[2].y-p[3].y)){

//        相交/包含

       if(x1>x2&&y1>y2){

           printf("%.2lf",(x1-x2)*(y1-y2));

       }else{

//        相离

           printf("0.00");

       }

   }else{

       printf("0.00");

   }

   return 0;

}

double min(double a,double b) {

   return a>b?b:a;

}

double max(double a,double b) {

   return a>b?a:b;

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论