HDU/2056-i/main.c
Saturneric 0525ffad24 Add.
2020-09-01 00:48:58 +08:00

31 lines
813 B
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include<stdio.h>
double max(double a,double b) //求两者中大的
{
return a>b?a:b;
}
double min(double c,double d) //求两者中小的
{
return c<d?c:d;
}
void solve()
{
double x1,y1,x2,y2,x3,y3,x4,y4,t;
while(scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4)!=EOF)
{
if(x1>x2) t=x1,x1=x2,x2=t;// 保证x2>x1。符合图中的情况。
if(y1>y2) t=y1,y1=y2,y2=t;//同上
if(x3>x4) t=x3,x3=x4,x4=t;//同上
if(y3>y4) t=y3,y3=y4,y4=t;//同上
double l=min(x2,x4)-max(x1,x3);// 求宽
double d=min(y2,y4)-max(y1,y3);// 求高。
double s=l*d; //求面积。
printf("%.2lf\n",max(x1,x3)>min(x2,x4)||max(y1,y3)>min(y2,y4)?0:s);//如果高或宽小于0解为0即没有相交的部分否则输出面积
}
}
int main()
{
solve();//问题解决。
return 0;
}