解题思路:
1.涉及到坐标,一般优先考虑结构体
2.利用结构体对坐标依据x轴或者y轴排序有利于抽象分析,因为我们输入的点,只说了是对角的点,输入顺序不同影响对面积的计算
3.对排序的点,我们要做标记,标记那个点是那个矩形的,我用tap=0表示第一个矩形,tap=1表示另外一个矩形
4.先做标记再用sort排序,要保证相交a【4】.tap ,不能是 1 1 0 0 或者 0 0 1 1, 是就输出0.00
不是就输出结果
注意事项:
结构体排序 const 一定带上,不带可能会出问题
参考代码:
//面积交
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
struct node{
double x;
double y;
int tap;
}a[4];
int cmp(const node &a,const node &b){ //注意const要加入
return a.x<b.x;
}
int main()
{
double are;
for(int i=0;i<4;i++)
cin>>a[i].x>>a[i].y;
a[0].tap=0;
a[1].tap=0;
a[2].tap=1;
a[3].tap=1;
sort(a,a+4,cmp);
if((a[0].tap==0&&a[1].tap==0&&a[2].tap==1&&a[3].tap==1)||(a[0].tap==1&&a[1].tap==1&&a[2].tap==0&&a[3].tap==0))
cout<<"0.00"<<endl;
else{
are=fabs((a[2].x-a[1].x)*(a[2].y-a[1].y));
printf("%.2f\n",are);}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复