以矩形2的左上角作为原点,建系,通过矩形1的左上角坐标,判断矩形1在坐标系中所处的象限,再根据矩形1的右下角坐标与矩形2的关系确定距离
2象限 | 1象限 |
3象限 | 4象限:也是矩形2的位置 |
#include <stdio.h>
#include <math.h>
typedef struct {
double x1, y1, x2, y2;
} RECTANGLE;
int main() {
double s;
RECTANGLE c1, c2;
scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &c1.x1, &c1.y1, &c1.x2, &c1.y2, &c2.x1, &c2.y1, &c2.x2, &c2.y2);
if (c1.x1 < c2.x1) {
//2
if (c1.y1 < c2.y1) {
if (c1.x2 < c2.x1) {
if (c1.y2 < c2.y1) {
s = sqrt((c1.x2 - c2.x1) * (c1.x2 - c2.x1) + (c1.y2 - c2.y1) * (c1.y2 - c2.y1));
} else {
s = c2.x1 - c1.x2;
}
} else {
if (c1.y2 > c2.y1) {
s = 0;
} else {
s = c2.y1 - c1.y2;
}
}
}
//3
else {
if (c1.x2 < c2.x1) {
s = c2