HELLOWORLD


私信TA

用户名:HELLOWORD2016

访问量:3196

签 名:

等  级
排  名 2980
经  验 2001
参赛次数 1
文章发表 5
年  龄 0
在职情况 学生
学  校 河南农业大学
专  业

  自我简介:

解题思路:

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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区