基础练习 矩形面积交

/*
问题描述
  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。
输入格式
  输入仅包含两行,每行描述一个矩形。
  在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
输出格式
  输出仅包含一个实数,为交的面积,保留到小数后两位。
样例输入
2 2 4 4
1 1 3 3

样例输出
1.00
*/
#include<stdio.h>
double xz_max( double , double );
double xz_min( double , double );
void shuchu( double ,double ,double ,double );
int main(void)
{  
    double x1 , y1 , x2 , y2 ;    
    double x3 , y3 , x4 , y4 ;    
    double dx1,dy1;       
	double dx2,dy2; 	 
    scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);  
    scanf("%lf%lf%lf%lf",&x3,&y3,&x4,&y4);  
    dx1 = xz_max(xz_min(x1,x2),xz_min(x3,x4));  
    dy1 = xz_max(xz_min(y1,y2),xz_min(y3,y4));  
    dx2 = xz_min(xz_max(x1,x2),xz_max(x3,x4));  
    dy2 = xz_min(xz_max(y1,y2),xz_max(y3,y4));  
    shuchu( dx1 , dy1 , dx2 , dy2 );
    return 0;  
} 
void shuchu( double p_m1,double p_n1 , double p_m2 , double p_n2)
{
	if( p_m2 > p_m1 && p_n2 > p_n1)
	{
		printf("%.2lf\n",(p_m2 - p_m1)*(p_n2 - p_n1));  	
	}  
    else
	{
		printf("0.00\n");
	}  
}
double xz_max( double a , double b)
{
	return a > b ? a : b;
}  
double xz_min( double a , double  b)
{
	return a < b ? a : b ;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值