c++ 绝对值问题,急!
我想实现s[i][j]=绝对值(a[i]-a[j])+绝对值(b[i]-b[j])的值。谢谢!...
我想实现 s[i][j]= 绝对值(a[i]-a[j]) + 绝对值(b[i]-b[j]) 的值。谢谢!
展开
4个回答
展开全部
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)。
展开全部
取绝对值有个专门的函数
abs()
abs()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加个函数:
int abs(int x)
{
if(x>=0) ?x:-x;//或者if(x>=0) return x; else return -x;
}
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]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询