c++中如何求一个数的绝对值

#include<iostream>#include<cmath>#include<iomanip>usingnamespacestd;voidmain(){inti=0... #include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
void main ()
{
int i=0,k=0;
double e=0.0001,a0=20,b0=1;
double e1=0.01,e2=0.01;
double x[9]={0.36,1.00,1.36,2.36,2.61,2.86,3.36,4.36,6.36};
double y[9]={4.01,9.33,11.54,15.68,16.38,16.99,17.69,19.22,20.29};
int a11=0,a12=0,a21=0,a22=0,c1=0,c2=0;
while(abs(e1)>=e||abs(e2)>=e)
{
for(k=0;k<=8;k++)
{
a11=a11+(1-exp(b0*x[k]))*(1-exp(b0*x[k]));
a12=a21=a12-a0*x[k] *exp(b0*x[k])*(1-exp(b0*x[k]));
a22=a22+ (a0*x[k] *exp(b0*x[k] ))* (a0*x[k] *exp(b0*x[k] ));
c1=c1+(y[k]-a0*(1-exp(b0*x[k])))*(1-exp(b0*x[k]));
c2=c2-(y[k]-a0*(1-exp(b0*x[k])))*a0*x[k]* exp(b0*x[k]);

e1= (c1*a22-c2*a12)/(a11*a22-a12*a21);
e2=(c2*a11-c1*a21)/ (a11*a22-a12*a21);
a0=a0+e1;
b0=b0+e2;
}
i++;

}

cout<<a0<<setw(10)<<b0;
}
我知道问题出在while那一行,主要是不知道怎么在C++中求一个数的绝对值?请高手帮忙,急急!!!
展开
 我来答
六六看社会
高粉答主

2018-03-30 · 财务助理
六六看社会
采纳数:2198 获赞数:126526

向TA提问 私信TA
展开全部

求不同类型数字的绝对值用不同的方法,方法如下:

第一种:int abs(int   i) 返回整型参数i的绝对值 ;

第二种:double cabs(struct   complex   znum) 返回复数znum的绝对值 ;    

第三种:double fabs(double   x) 返回双精度参数x的绝对值    ; 

第四种:long labs(long   n) 返回长整型参数n的绝对值 。

例子:

#include <iostream>  

#include<cmath>//C语言是math.h  

using namespace std;  

void main(void)  

{  

int a=1,b=10;  

double e=1,f=10;  

float c=1,d=10;  

cout<<"c-d="<<abs(c-d)<<endl;  

cout<<"e-f="<<abs(e-f)<<endl;

cout<<"b-a="<<abs(b-a)<<endl;  

cin.get();  

}

返回结果:

c-d=9

e-f=9

b-a=9

Linux线程
2011-02-21 · 超过20用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:35.6万
展开全部
自己写一个宏吧,很容易的。所谓取绝对值,也就是在它小于零的时候取它的负值嘛,很简单:
#define _ABS(x) ((x) > 0 ? (x) : -(x))

你的问题在于,abs函数的参数是整形的,而你输入的参数是浮点型的,因此经过绝对值转换后,会被强行取整。
前面有人给你提供了一个函数,那个函数有同样的问题。所以我建议你用我上面写的这个宏,支持任意类型。
其实还有一种比宏更好的方法是使用模板函数,可能对你来说比宏更难以理解,因此这儿我就不介绍了。
其实1楼的方法,就是用fabs也能解决,不过,这么简单的运算就用库函数貌似不太值得。
此外,顺便提一个与本问题无关的问题,对浮点型数据进行==的比较是没有任何意义的,理由这儿我就不说了,你可以自己查一下相关资料。同理,对浮点型数据进行>=运算也无意义。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海南的男孩子
2017-03-24 · 知道合伙人互联网行家
海南的男孩子
知道合伙人互联网行家
采纳数:295 获赞数:1319
顺至信息科技有限公司最佳员工

向TA提问 私信TA
展开全部
求不同类型数字的绝对值用不同的方法,方法如下:
第一种:int abs(int i) 返回整型参数i的绝对值
第二种:double cabs(struct complex znum) 返回复数znum的绝对值
第三种:double fabs(double x) 返回双精度参数x的绝对值
第四种:long labs(long n) 返回长整型参数n的绝对值
例子:

#include <iostream>
#include<cmath>//C语言是math.h

using namespace std;
void main(void)
{
int a=1,b=10;
double e=1,f=10;
float c=1,d=10;

cout<<"c-d="<<abs(c-d)<<endl;
cout<<"e-f="<<abs(e-f)<<endl;
cout<<"b-a="<<abs(b-a)<<endl;
cin.get();
}
返回结果:
c-d=9
e-f=9
b-a=9
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
数学达人郎老师
2020-12-09 · TA获得超过1338个赞
知道小有建树答主
回答量:810
采纳率:100%
帮助的人:40.6万
展开全部

七年级数学易错题 一个数的绝对值等于它的平方,这个数是 ( )。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天外云鹤
2011-02-21 · 超过16用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:46.6万
展开全部
找不到库函数自己写一个呗..
int absoluteValue(int a)
{
if (a < 0)
{
return -a;
}
return a;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式