c++ 绝对值问题,急!

我想实现s[i][j]=绝对值(a[i]-a[j])+绝对值(b[i]-b[j])的值。谢谢!... 我想实现 s[i][j]= 绝对值(a[i]-a[j]) + 绝对值(b[i]-b[j]) 的值。谢谢! 展开
 我来答
竟然可以七个字
2011-08-19 · TA获得超过285个赞
知道小有建树答主
回答量:233
采纳率:100%
帮助的人:173万
展开全部
s[i][j] = (a[i]-a[j]) >= 0 ? (a[i]-a[j]) : (-(a[i]-a[j])) + (b[i]-b[j]) >= 0 ? (b[i]-b[j]) : (-(b[i]-b[j])) ;
追问
我实现了下,可为什么数据还有负数,并且数据结果变了。
追答
可能是运算符之间的优先级弄错了,再添几个括号试试:
s[i][j] = (((a[i]-a[j]) >= 0) ? (a[i]-a[j]) : (-(a[i]-a[j]))) + (((b[i]-b[j]) >= 0) ? (b[i]-b[j]) : (-(b[i]-b[j]))) ;
或者就像他们说的,使用abs函数吧,但是要添加stdlib.h头文件,不同的数据类型调用的abs函数也不相同,int使用abs(n),long使用labs(n),浮点型使用fabs(n)。
就是这样的夜
2011-08-19 · TA获得超过838个赞
知道小有建树答主
回答量:820
采纳率:0%
帮助的人:520万
展开全部
取绝对值有个专门的函数
abs()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友386d571
2013-02-08 · 超过12用户采纳过TA的回答
知道答主
回答量:62
采纳率:100%
帮助的人:31.9万
展开全部
加个函数:
int abs(int x)
{
if(x>=0) ?x:-x;//或者if(x>=0) return x; else return -x;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-19
展开全部
s[i][j]=fabs(a[i]-a[j])+fabs(b[i]-b[j]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式