c语言 abs 不好用,c语言中 abs 和 fabs 不同吗?

c语言中 abs 和 fabs 不同吗?

來源:互聯網  2009-05-16 09:41:07  評論

分類: 電腦/網絡 >> 程序設計 >> 其他編程語言

問題描述:

float countValue(){double x1,x0;int flag=1;x1=0.0;while(flag){x0=x1;x1=cos(x0);if(abs(x0-x1)<0.000001)flag=0;}return x1;}其结果为 0.739086float countValue(){double x1,x0;int flag=1;x1=0.0;while(flag){x0=x1;x1=cos(x0);if(abs(x0-x1)<0.000001)flag=0;}return x1;}其结果为0.540302

參考答案:

用abs会发现,只进行的两次计算,第一次x1=cos(0)=1,第二次x1=cos(1)=0.540302。这时x1-x0的值小于一,作为abs的参数,被强制转化为整数0,于是退出了。

可见第一个用的是fabs迭代到比较精确的值,第二个用的是abs。

[b]分类:[/b] 电脑/网络 >> 程序设计 >> 其他编程语言[br][b]问题描述:[/b][br]float countValue(){double x1,x0;int flag=1;x1=0.0;while(flag){x0=x1;x1=cos(x0);if(abs(x0-x1)<0.000001)flag=0;}return x1;}其结果为 0.739086float countValue(){double x1,x0;int flag=1;x1=0.0;while(flag){x0=x1;x1=cos(x0);if(abs(x0-x1)<0.000001)flag=0;}return x1;}其结果为0.540302[br][b]参考答案:[/b][br]用abs会发现,只进行的两次计算,第一次x1=cos(0)=1,第二次x1=cos(1)=0.540302。这时x1-x0的值小于一,作为abs的参数,被强制转化为整数0,于是退出了。

可见第一个用的是fabs迭代到比较精确的值,第二个用的是abs。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值