A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看到ios点和点距离作业点评那里 前面的代码就不赘述了
double squarex =  pow(self->_x - other->_x,2);  //求(x1-x2)的平方 和 (y1-y2)的平方
double squarey =  pow(self->_y - other->_y,2);
    double distance = sqrt(squarex+squarey); //求开根号
    return distance; //这样返回 5 ;
double squarex =  pow([self X] - [other X],2);
    double squarey =  pow([self X] - [other X],2);
    double distance = sqrt(squarex+squarey);
    return distance;//这样返回也是5 ;
那么问题来了
   double squarex =  pow(self->_x - other->_x,2);
    double squarey =  pow([self X] - [other X],2);
    double distance = sqrt(squarex+squarey);
    return distance;//这样为什么就返回8.544004呢

3 个回复

倒序浏览
本帖最后由 darewolf 于 2015-4-29 21:25 编辑

你确定你的这两句没有错误
    double squarex =  pow([self X] - [other X],2);
    double squarey =  pow([self X] - [other X],2);
1>你计算来计算来,计算去的,不就是计算(x1 - x2)^2 + (x1-x2)^2开根吗
2>还有就是你的get方法是不规范的,在pow,sqrt 中,
3>为了规范两数相减可以用()括住,pow(([slef x]- [other x]),2)
你输入的(24,56) (21,60),距离肯定是5
回复 使用道具 举报
本帖最后由 ydy96315 于 2015-4-29 21:55 编辑
darewolf 发表于 2015-4-29 21:20
你确定你的这两句没有错误
    double squarex =  pow([self X] - [other X],2);
    double squarey =  po ...

又试来一下  。。。。好像是我改的时候改错了。。。谢谢啊兄弟
回复 使用道具 举报
本帖最后由 ydy96315 于 2015-4-29 21:56 编辑
darewolf 发表于 2015-4-29 21:20
你确定你的这两句没有错误
    double squarex =  pow([self X] - [other X],2);
    double squarey =  po ...

又试来一下  。。。。好像是我改的时候改错了。。。谢谢啊兄弟
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马