图书馆馆员参观方案:请教C语言编程:求任意一个一元二次方程的根

来源:百度文库 编辑:神马品牌网 时间:2024/03/29 08:20:33
请教哪位高手?:求任意一个一元二次方程的根。(分别考虑两个不相等的实根,两个相等的实根和两个虚根的情况)

对于ax^2+bx+c=0
int panduan(int a,int b,int c)
{
int m;
m=b*b-4*a*c;
return(m);
}
void main()
{int a,b,c,flag,x1,x2,ture,virture;
printf("请依次输入二次方程的系数:\n”);
scanf("%d %d %d",&a,&b,&c);
flag=panduan(a,b,c);
if(flag>0)
{x1=(-b+sqr(flag))/(2*a);
x2=(-b-sqr(flag))/(2*a);
printf("两个不相等的实根为:x1=%d,x2=%d",x1,x2);
}
else if(flag==0)
{x1=-b/(2*a);
printf("两个相等的实根为:x1=x2=%d",x1);
}
else
{ture=-b/(2*a);
virture=sqr(-flag)/(2*a);
printf("两个不相等的虚根为:x1=%d+%di,x2=%d-%di",ture,virture,ture,virture);
}
}
程序的健壮性不是很好,适用于int型的,你可以将所有的变量都改为float,这样就可以处理其他的问题。要求输入绝对正确,3个系数之间以空格隔开!

直接代入公式,分情况计算啊,没什么特别的吧。