原题链接:蓝桥杯基础练习VIP-矩形面积交
解题思路:
注意事项:
参考代码:
#include <cstdio> #include <iostream> #include <algorithm> using namespace std; bool judge(int maxX1,int minX1,int maxY1,int minY1,int maxX2,int minX2,int maxY2,int minY2){ if(((minX2 >= minX1 && minX2 <= maxX1) || (maxX2 >= minX1 && maxX2 <= maxX1)) &&((minY2 >= minY1 && minY2 <=maxY1) || (maxY2 >= minY1 && maxY2 <=maxY1))) return true; else return false; } int main(void){ double x1,x2,x3,x4,y1,y2,y3,y4; cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4; double maxX1 = x1 > x2? x1 : x2; double maxY1 = y1 > y2? y1 : y2; double minX1 = x1 < x2? x1 : x2; double minY1 = y1 < y2? y1 : y2; double maxX2 = x3 > x4? x3 : x4; double maxY2 = y3 > y4? y3 : y4; double minX2 = x3 < x4? x3 : x4; double minY2 = y3 < y4? y3 : y4; double ans = 0; if(judge(maxX1,minX1,maxY1,minY1,maxX2,minX2,maxY2,minY2)){ double x1,x2,y1,y2; x1 = minX1 > minX2 ? minX1 : minX2; x2 = maxX1 < maxX2 ? maxX1 : maxX2; y1 = minY1 > minY2 ? minY1 : minY2; y2 = maxY1 < maxY2 ? maxY1 : maxY2; ans = (x2-x1)*(y2-y1); } printf("%.2lf",ans); return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复