c++中如何求一个数的绝对值#include #include #include 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
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 16:56:49
c++中如何求一个数的绝对值#include #include #include 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
c++中如何求一个数的绝对值
#include
#include
#include
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
c++中如何求一个数的绝对值#include #include #include 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
自己写一个宏吧,很容易的.所谓取绝对值,也就是在它小于零的时候取它的负值嘛,很简单:
#define _ABS(x) ((x) > 0 (x) :-(x))
你的问题在于,abs函数的参数是整形的,而你输入的参数是浮点型的,因此经过绝对值转换后,会被强行取整.
前面有人给你提供了一个函数,那个函数有同样的问题.所以我建议你用我上面写的这个宏,支持任意类型.
其实还有一种比宏更好的方法是使用模板函数,可能对你来说比宏更难以理解,因此这儿我就不介绍了.
其实1楼的方法,就是用fabs也能解决,不过,这么简单的运算就用库函数貌似不太值得.
此外,顺便提一个与本问题无关的问题,对浮点型数据进行==的比较是没有任何意义的,理由这儿我就不说了,你可以自己查一下相关资料.同理,对浮点型数据进行>=运算也无意义.