// 求一元二次方程的根.cpp : Defines the entry point for the console application.
//
#include
#include
#include
#include
void solv_quadr_equa(float a,float b,float c); //函数声明,此函数用于求方程根
int main(int argc, char* argv[])
{ float x,y,z;
printf ("请输入a,b,c三个数"); //系统提示输入三个数
scanf ("%f%f%f",&x,&y,&z); //将三个数赋值给变量x,y,z。
solv_quadr_equa(x,y,z); //调用求根函数进行求解方程根
return 0;
}
void solv_quadr_equa(float a,float b,float c)
{
if(a==0)
if(b==0)
printf("no answer due to input eeor\n");//如果a,b皆为0,提示输入错误
else
printf("the single root is %f\n",-c/b);//如果a=0且b!=0,输出单根-c/b
else //如果a,b皆不为0则按以下步骤求根
{
double disc,twoa,term1,term2;
disc=b*b-4*a*c; //判断式
twoa=2*a; //分母2a
term1=-b/twoa;
term2=sqrt(fabs(disc))/twoa ;
if (disc<0.0) //b方减4ac为负数 无实根,输出虚根的实部和虚部
printf("complex root:\n real part=%f\n image part=%f\n",term1,term2);
else //b方减4ac大于等于0 有两个实根
printf("real root:\n root1=%f\n root2=%f\n",term1+term2,term1-term2);
}
}
用c语言或c++编程。 经编辑链接,测试无错。直接复制到空的工程里面即可运行,呵呵,你试一试,加油。