c++笔试题,求矩形交集。
一个平面坐标系上,两个矩形,其边分别平行于x和y轴,已知两矩形四边,值都是整数,没有交集,返回-1,有交集,返回交集面积。
刚看到这道题,以为需要很多判断,然后草率的就写下了以下代码
struct rect{
int x1; //矩形左边
int x2;
int y1; //矩形上边
int y2;
};
int pos(int x,inty)
{
int result=0;
if(x-y<0)
result=y-x;
else
result=x-y;
return result;
}
double area(rect &a,rect&b)
{
if(a.y1<=b.y2||a.y2>=b.y1||a.x2<=b.x1||a.x1>=b.x2)
return -1;
else
{
int aheight,awidth,bheight,bwidth;
aheight=a.y1-a.y2;
awidth=a.x2-a.x1;
bheight=b.y1-b.y2;
bwidth=b.x2-b.x1;
int abx1,abx2,aby1,aby2;
abx1=pos(a.