分别给出两个矩形的两个相对坐标,求出特们的面积和

题目描述
橙子每天晚上都会做梦,但是橙子不想做梦,因为橙子每次做梦都会产生一个矩形阴影,每做一个梦就会产生一个,而且奇怪的是橙子每天晚上只做2个梦,橙子想知道自己每天晚上的阴影到底有多大,你能帮橙子计算一下两个矩形的面积和吗?(重合部分只算一次)
输入
输入两行,每行四个整数 x,y,x1,y1 。(x,y) 是矩形左下角,(x1,y1) 是矩形的右上角. (0≤x,y,x1,y1≤1000)。
输出
输出一个整数表示两个矩形的面积和。(重合部分只算一次)
样例输入
0 1 2 3
1 0 3 2
样例输出
7

#include <stdio.h>
#include <math.h>

int main()
{
    
    
    long long int x,y,x1,y1,z,c,z1,c1,j,i,j1,i1,s;
    scanf("%lld%lld%lld%lld%lld%lld%lld%lld",&x,&y,&x1,&y1,&z,&c,&z1,&c1);
    //左下角需求出两个坐标点都是最大的情况;右上角及需求出都是最小的情况**
    if(x<z)
        i=z;
    else
        i=x;
    if(y<c)
        j=c;
    else
        j=y;
    if(x1<z1)
        i1=x1;
    else
        i1=z1;
    if(y1<c1)
        j1=y1;
    else
        j1=c1;
    if(c1<=y||c>=y1)//排除两个矩形不相交的情况*
    {
    
    
        s=(fabs(x1-x))*(fabs(y1-y))+(fabs(z1-z))*(fabs(c1-c));
    }
    else//当两个矩形相交的情况*****
    {
    
    
        s=(fabs(x1-x))*(fabs(y1-y))+(fabs(z1-z))*(fabs(c1-c))-(fabs(i1-i))*(fabs(j1-j));

    }
    printf("%lld",s);

    return 0;
}

猜你喜欢

转载自blog.csdn.net/cuijunrongaa/article/details/103108425
今日推荐