Problem B 1263 矩形面积的并

2021年下学期《C语言程序设计》作业8-函数2 

矩形面积的并指的是,将两个矩形的面积求并集。

也就是说,如果两个矩形不相交,那么它们的并就是面积之和。

否则为面积和减去公共面积。

Problem B 1263 矩形面积的并

 要小心X1,X2,X3,X4之间的关系。

#include<stdio.h> //坑 
#include<math.h>  //坑
#include<algorithm>
#include<cstring>
using namespace std;
int cmp (const void * a, const void * b) {
    return ( *(int*)a - * (int*)b ); //从小到大排序
}
int main() {
    int x[4];
    int y[4];
    while (scanf("%d %d %d %d", &x[0], &y[0], &x[1], &y[1]) == 4 && scanf("%d %d %d %d", &x[2], &y[2], &x[3], &y[3]) == 4) {
        int xx = 0, yy = 0;//相交部分矩形的长和宽。

        int x1 = x[0] < x[1] ? x[0] : x[1];
        int x2 = x[0] < x[1] ? x[1] : x[0];

        int x3 = x[2] < x[3] ? x[2] : x[3];
        int x4 = x[2] < x[3] ? x[3] : x[2];
        if ((x2 >= x3 && x2 <= x4) || (x4 >= x1 && x4 <= x2)) { //确定X轴是否相交。
            qsort(x, 4, sizeof(int), cmp);
            xx = x[2] - x[1];
        }


        int y1 = y[0] < y[1] ? y[0] : y[1];
        int y2 = y[0] < y[1] ? y[1] : y[0];

        int y3 = y[2] < y[3] ? y[2] : y[3];
        int y4 = y[2] < y[3] ? y[3] : y[2];
        if ((y2 >= y3 && y2 <= y4) || (y4 >= y1 && y4 <= y2)) { //确定Y轴是否相交。
            qsort(y, 4, sizeof(int), cmp);
            yy = y[2] - y[1];
        }
        int ans = (x2 - x1) * (y2 - y1) + (x4 - x3) * (y4 - y3) - xx * yy;
        printf("%d\n", ans);
    }
}

上一篇:redhat/centos 7 远程连接图形化桌面


下一篇:Cannot find module ‘@xxxx‘ or its corresponding type declarations.Vetur(2307)