(C语言实现)IDE:dev c++
算法一
#include <stdio.h>
double Area(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4)
{
double s;
double x,y;
if(x4<=x1 || x2<=x3) x=0;
if(x3<=x1 && x1<=x4 && x4<=x2) x=x4-x1;
if(x3<=x1 && x1<=x2 && x2<=x4) x=x2-x1;
if(x1<=x3 && x3<=x4 && x4<=x2) x=x4-x3;
if(x1<=x3 && x3<=x2 && x2<=x4) x=x2-x3;
if(y4<=y1 || y2<=y3) y=0;
if(y3<=y1 && y1<=y4 && y4<=y2) y=y4-y1;
if(y3<=y1 && y1<=y2 && y2<=y4) y=y2-y1;
if(y1<=y3 && y3<=y4 && y4<=y2) y=y4-y3;
if(y1<=y3 && y3<=y2 && y2<=y4) y=y2-y3;
s = x * y;
return s;
}
int main(){
double x1,y1, x2,y2, x3,y3, x4,y4, s;
scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
s = Area(x1,y1, x2,y2, x3,y3, x4,y4);
printf("%.2lf",s);
return 0;
}
算法二
#include <stdio.h>
int Area(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4){
double s;
if(x4<=x1 || x2<=x3 || y4<=y1 || y2<= y3) s=0;
if(x1<=x3 && x3<=x2 && x2<=x4
&& y1<=y3 && y3<=y2 && y2<=y4) s=(x2-x3)*(y2-y3);
if(x1<=x3 && x3<=x2 && x2<=x4
&& y3<=y1 && y1<=y4 && y4<=y2) s=(x2-x3)*(y4-y1);
if(x3<=x1 && x1<=x4 && x4<=x2
&& y3<=y1 && y1<=y4 && y4<=y2) s=(x4-x1)*(y4-y1);
if(x3<=x1 && x1<=x4 && x4<=x2
&& y1<=y3 && y3<=y2 && y2<=y4) s=(x4-x1)*(y2-y3);
if(x1<=x3 && x3<=x2 && x2<=x4
&& y1<=y3 && y3<=y4 && y4<=y2) s=(x2-x3)*(y4-y3);
if(x1<=x3 && x3<=x4 && x4<=x2
&& y3<=y1 && y1<=y4 && y4<=y2) s=(x4-x3)*(y4-y1);
if(x3<=x1 && x1<=x4 && x4<=x2
&& y1<=y3 && y3<=y4 && y4<=y2) s=(x4-x1)*(y4-y3);
if(x1<=x3 && x3<=x4 && x4<=x2
&& y1<=y3 && y3<=y2 && y2<=y4) s=(x4-x3)*(y2-y3);
if(x1<=x3 && x3<=x4 && x4<=x2
&& y1<=y3 && y3<=y4 && y4<=y2) s=(x4-x3)*(y4-y3);
if(x3<=x1 && x1<=x2 && x2<=x4
&& y3<=y1 && y1<=y2 && y2<=y4) s=(x2-x1)*(y2-y1);
if(x3<=x1 && x1<=x2 && x2<=x4
&& y1<=y3 && y3<=y4 && y4<=y2) s=(x2-x1)*(y4-y3);
if(x1<=x3 && x3<=x4 && x4<=x2
&& y3<=y1 && y1<=y2 && y2<=y4) s=(x4-x3)*(y2-y1);
if(x3<=x1 && x1<=x2 && x2<=x4
&& y1<=y3 && y3<=y2 && y2<=y4) s=(x2-x1)*(y2-y3);
if(x1<=x3 && x3<=x2 && x2<=x4
&& y3<=y1 && y1<=y2 && y2<=y4) s=(x2-x3)*(y2-y1);
if(x3<=x1 && x1<=x2 && x2<=x4
&& y3<=y1 && y1<=y4 && y4<=y2) s=(x2-x1)*(y4-y1);
if(x3<=x1 && x1<=x4 && x4<=x2
&& y3<=y1 && y1<=y2 && y2<=y4) s=(x4-x1)*(y2-y1);
return s;
}
int main(){
double x1,y1, x2,y2, x3,y3, x4,y4, s;
scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);
s = Area(x1,y1,x2,y2,x3,y3,x4,y4);
printf("%0.2lf\n",s);
return 0;
}
如果这段代码对您有帮助,希望您可以给猿猿一个赞,谢谢您嘞,code不易,且看且珍惜。