INELXS


私信TA

用户名:INELXS

访问量:4177

签 名:

阿杜,进进 ,Fighting !!!

等  级
排  名 3967
经  验 1807
参赛次数 0
文章发表 12
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路: 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 人评分

新上线《蓝桥杯辅导》课程,近五年的蓝桥杯省赛与国赛真题都有,从读题开始理解题意、梳理思路、实现代码再提交评测全过程,可有效提升获奖比例甚至进国赛!课程介绍、试听请猛击这里

  评论区

  • «
  • »