c语言改错题 有关求一元二次方程ax2+bx+c=0的两个实根
c语言改错题 有关求一元二次方程ax2+bx+c=0的两个实根
日期:2016-10-27 14:55:05 人气:2
(1)的方法是错的,因为float精度有限,最多只能保存7位有效数字,所以b的值在计算机中保存的实际上是-1.0e+12,那个额外的1是没法保存下来的,不信的话,你可以用下面的代码测试下.
#include
#include
void main( )
{float a,b;
a=1.0e+12+1.0;
b=1.0e+12;
printf("%e\n",a-b);
}
同理,求出的p值理论上应该是sqrt((1e12-4)*1e12),但因为4与1e1