一道简单的C语言程序设计题

求方程ax2+bx+c=0的解,用三个函数分别求当b2-4ac>0,=0,<0时的根,在主函数输入a,b,c的值。呵呵,有劳各位了。
<0时要计算虚数的

#include "stdio.h"
#include "math.h"
void root1(float a, float b, float c)
{
float x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/2/a;
x2=(-b-sqrt(b*b-4*a*c))/2/a;
printf("x1=%f x2=%f",x1,x2);
}

void root2(float a, float b, float c)
{
printf("x1=x2=%f",(sqrt(b*b-4*a*c)-b)/2/a);
}

void root3(float a, float b, float c)
{
float s,x;
s=-b/2/a;//实部
x=sqrt(4*a*c-b*b)/(2*a);//虚部
printf("x1=%f+%fi x2=%f-%fi",s,x,s,x);
}

void main()
{
float a,b,c,d;
printf("Input a b c:\n");
scanf("%f %f %f",&a,&b,&c);
d=b*b-4*a*c;
if(d>0) root1(a,b,c);
else if(d==0) root2(a,b,c);
else root3(a,b,c);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-05-10
main()
{
float a ,b,c;
float x1,x2,g;
scanf("a,b,c",&f,&f,&f) ;
if b^2-4*a*c>0
{
g=sqr(b^2-4*a*c);
x1=(-b+g)/(2*a);
x1=(-b-g)/(2*a);
printf("x1,x2的值分别为:",x1.x2);
}
else if b^2-4*a*c=0
{
x1=x2=-b/(2*a);
printf("x1,x2的值存在为:",x1);
}
else
printf("x1,x2的值不存在");
}
相似回答