首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求根代码,该怎么处理

2012-02-16 
求根代码此代码用来计算一元二次方程的根,如果满足b*b-4*a*c 0,则输出根,否则什么都不输出.#includemat

求根代码
此代码用来计算一元二次方程的根,如果满足b*b-4*a*c> =0,则输出根,否则什么都不输出.
#include   "math.h "
#include   "stdio.h "
void   root2(float   a,float   b,float   c,float   root[2])
{
double   d=sqrt(b*b-4*a*c);
root[0]=(-b+d)/(2*a);
root[1]=(-b-d)/(2*a);
}
main()
{
float   a,b,c,root[2];
scanf( "%f%f%f ",&a,&b,&c);
if(b*b+4*a*c> =0)  
{
        root2(a,b,c,root);
        printf( "%f,%f ",root[0],root[1]);
                    }
}
请看看代码有无问题.

[解决办法]
abc等这些变量声明为float是指它的存储类型,为了更精确的完成运算,在运算的时候都是使用双精度运算器在运算,赋值的时候再去考虑结果的存储类型
还有一种是关系转换,比如int a;a=5;当我进行a=a+1.0运算时,首先取出a的值5,然后将5转化为浮点数,在与1.0区进行运算,最后把运算结果存入a中,这时因为a为int类型,浮点数尾数部分舍去,结果就是6!

热点排行