求 矩形面积交 的问题
当输入 1 1 4 5 1 1 4 5 时,两个矩形是重合的,但是输出的结果却是 0.00,怎么破?/*
问题描述
平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,
请你编程算出两个矩形的交的面积。
输入格式
输入仅包含两行,每行描述一个矩形。
在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
输出格式
输出仅包含一个实数,为交的面积,保留到小数后两位。
样例输入
1 1 3 3
2 2 4 4
样例输出
1.00
*/
#include<stdio.h>
int main(){
double x1,x2,y1,y2,x3,y3,x4,y4,x,y;
scanf("%f%f%f%f",&x1,&y1,&x2,&y2);
scanf("%f%f%f%f",&x3,&y3,&x4,&y4);
if(x1>x2){
x=x1;x1=x2;x2=x;
}
if(x3>x4){
x=x3;x3=x4;x4=x;
}
if(y1>y2){
y=y1;y1=y2;y2=y;
}
if(y3>y4){
y=y3;y3=y4;y4=y;
}
x = (x4 > x2) ? x2 : x4;
x -= (x3 > x1) ? x3 : x1;
y = (y4 > y2) ? y2 : y4;
y -= (y3 > y1) ? y3 : y1;
if(x <=0 || y <= 0){
printf("0.00\n");}
else{
printf("%.2f\n", x * y);}
return 0;
}