c语言,cos近似值计算(结果偏差问题)

[复制链接]
查看11 | 回复2 | 2011-12-3 11:55:41 | 显示全部楼层 |阅读模式
题目要求精确到最后一项的绝对值小于e,也就是说当某项的绝对值小于e时,这项也要参与计算,然后再结束循环。而你的程序当遇到某项的绝对值小于e时,就结束循环了。double temp;sum = 0.0;flag = -1;n = -2;do{n += 2;flag = -flag;temp=mypow(x,n);sum = sum + flag * temp;}while(fabs(temp)>=e);就行了...
回复

使用道具 举报

千问 | 2011-12-3 11:55:41 | 显示全部楼层
当精度是0.0001的时候,你的结果-1.000003已经和正确的结果的精度 fabs(-1.000003 + 0.999999) = 0.000004 < 0.0001了, 结果应该也算是正确的。我测试了一下,如果你的e取0.000001的时候,计算出来的结果就是0.999999了,你的程序是没有问题的, 误差是在题目给出的精度范围e之内的。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行