解题思路:
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语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:733 |
C语言训练-求素数问题 (C语言代码)浏览:1458 |
简单的a+b (C++语言代码)浏览:860 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:605 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:540 |
C语言训练-求PI* (C语言代码)浏览:614 |
WU-拆分位数 (C++代码)浏览:787 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:557 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:682 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:262 |