本文主要是介绍C语言 求方程ax^2+bx+c=0的根,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、求方程ax^2+bx+c=0的根,用三个函数分别求当:b^2-4ac大于0,等于0,和小于0时的根并输出结果。从主函数输入a,b,c的值。
#include <stdio.h>
#include<math.h>
float x,x1,x2,disc;
int main()
{void fun1(float i,float j);void fun2(float l,float m,float n);void fun3(float o,float p,float q);float a,b,c;printf("请分别输入a,b,c的值:");scanf("%f %f %f",&a,&b,&c);if(a==0){x=(-c)/b;printf("该方程不是一元二次方程,但解为x=%f\n",x);}if (a!=0){disc=b*b-4*a*c;if(fabs(disc)<=1e-8)fun1(a,b);else if(disc>0)fun2(a,b,c);else if(disc<0)fun3(a,b,c);}return 0;
}
void fun1(float i,float j)
{float x;x=-j/(2*i);printf("该方程有两个相同的实根x1=x2=%f\n",x);
}
void fun2(float l,float m,float n)
{disc=m*m-4*l*n;x1=(-m+sqrt(disc))/(2*l);x2=(-m-sqrt(disc))/(2*l);printf("该方程有两个不同的实根\nx1=%f\nx2=%f\n",x1,x2);
}
void fun3(float o,float p,float q)
{float e,f;disc=p*p-4*o*q;e=-p/(2*o);f=sqrt(fabs(disc))/(2*o);printf("该方程有两个共轭复数根\nx1=%f+%fi\nx2=%f-%fi\n",e,f,e,f);
}
运行结果
a=0
disc=0
disc>0
disc<0
这篇关于C语言 求方程ax^2+bx+c=0的根的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!