作者lalawolala (教练我想哭哭)
看板C_and_CPP
标题[问题] 判断错误??
时间Fri Feb 20 00:24:21 2009
我想计算两个座标 x1 y1 和 x2 y2 的距离是否大於半径
是的话印出加入成功 否的话印出加入失败
在这边设的半径为 3
根据距离函式算出来的也是3 不知道为啥怎麽改都还是加入失败
改成小於等於半径印出加入成功 大於印出加入失败也都是一样
想请问一下哪边出问题了吗
非常感谢 <(_ _)>
#include <cstdlib>
#include <iostream>
#include <math.h>
#define radius 3
using namespace std;
bool check_its_point(double , double , double , double );
double distance(double , double , double , double );
int main(int argc, char *argv[])
{
// 8.24499, -0.98998 要输入的数值 与 6, 1比较
// 5.75501, 3.98998 要输入的数值 与 6, 1比较
// 7.47141, -1.61438 要输入的数值 与 6, 1比较
if( check_its_point(5.75501, 3.98998 ,6 ,1 ) == true)
{
cout << "加入成功" << endl;
}
else
{
cout << "加入失败" << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
bool check_its_point(double x1, double y1, double x2, double y2)
{
double r = radius;
cout << distance(x1, y1, x2, y2 ) << endl;
if( distance(x1, y1, x2, y2 ) > r )
{
cout << x1 << "," << y1 << "到" << x1 << "," << y2 << "距离大於" << r <<" 不存入" << endl;
//cout << x1 << "," << y1 << "到" << x2 << "," << y2 << "距离小於" << r <<" 存入" << endl;
return false;
}
return true;
}
double distance(double x1, double y1, double x2, double y2)
{
double distance = 0;
distance = sqrt( pow((x2 - x1), 2) + pow((y2 - y1), 2));
cout << "距离 = " << distance << endl;
return distance;
}
--
柏油->Two-Face ◢~
你想作什麽? ◢█ ██~ ● 正面就炸你
放开那女孩! ◢ ≡ ◥◣ \ 反面炸你家
▔▔▔▔▔▔▔▔▔ ◣ ▔▔ -◎-⊙- / ◤
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ -皿 ╭▌ 有时正气凛然
20080722 pm 18:20左右 ψQSWEET ◣ ︶ ◤ 目 有时却凶猛霸道
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.128.207
1F:推 plover:double精准度的问题?! 02/20 00:47
2F:推 tsaiminghan:同上 02/20 01:00
3F:→ lalawolala:是喔 @_@ 请问怎麽改可以让他正常判断哩? 试半天还是错 02/20 01:01
4F:推 tsaiminghan:我没看你的码不过如果用double时,不能用==来比较 02/20 01:06
5F:→ tsaiminghan:之前看的方式是类似abs(a-b) < 0.0000001之类的方式 02/20 01:07
6F:→ tsaiminghan:看来不是这个问题 02/20 01:13
7F:→ tsaiminghan:check_its_point似乎只回传true耶? 02/20 01:15
8F:→ tsaiminghan:你的return false是真的mark掉了? 02/20 01:16
9F:→ lalawolala:return false 是测试的时候忘记消掉 不过消掉後 02/20 11:43
10F:→ lalawolala:还是无法正常判断 0.0 02/20 11:43
※ 编辑: lalawolala 来自: 210.240.186.16 (02/20 12:13)