【发布时间】:2017-12-09 08:53:31
【问题描述】:
我得到一个矩形,它的高度(h)和宽度(w),它是中心O(x0,y0) .我需要计算给定点 A(x,y) 是否在该矩形内。它平行于 x 和 y 轴。所有值都是真实的。
我提出了以下测试,但由于某种原因,我正在测试代码的网站不适用于所有示例。有人能指出我正确的方向吗?
#include <iostream>
#include <cmath>
using namespace std;
int main(){
long x,y,x0,y0,r,h,w;
scanf("%ld",&x);
scanf("%ld",&y);
scanf("%ld",&x0);
scanf("%ld",&y0);
scanf("%ld",&h);
scanf("%ld",&w);
if((x0+w/2.0>=x)&&(x0-w/2.0<=x)&&(y0+h/2.0>=y)&&(y0-h/2.0<=y))
printf("inside a rectangle");
else
printf("outside a rectangle");
}
提前致谢。
【问题讨论】:
-
3/2 == 1使用 long,而不是1.5,尝试使用 double(和%lf) -
@RingØ OP 的代码中没有浮点除法
-
它是 C/C++。谢谢环我会试试的
-
这里面几乎没有C++,几乎只有C。去掉
scanf,改用std::cin。 -
@ChristianHackl.:是的,我会说同样的话。你有没有看过他们写的代码——我的意思是更不用说可读性了——那些只是检查算法的意义。并且所有 c++ 编码器都添加了标题
bits/stdc++.h。然后他们总是得到一个快乐的路径输入——所以不需要错误检查。这与编写一个好的软件或防弹代码完全不同。你说的对。
标签: c++ geometry rectangles