#include stdio.h
创新互联建站于2013年创立,先为宁河等服务建站,宁河等地企业,进行企业商务咨询服务。为宁河企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
#include math.h
int main(void)
{
double a,b,c,disc,x1,x2,imagpart,realpart,m,n;
printf("please input a,b,c(a!=0):\n");
scanf("%lf%lf%lf",a,b,c);
disc = b * b - 4 * a * c;
m = - b / (2 * a);
n = sqrt(disc) / (2 * a);
if (fabs(disc) 1e-8)
{
x1 = x2 = m; //有两个相等实根
printf("x1=x2=%8.2f\n",x1);
}
else
if (disc 0)
{
x1 = m + n,x2 = m - n; //有两个不等实根
printf("x1=%8.2f\t,x2=%8.2f\n",x1,x2);
}
else
{
realpart = m;
imagpart = sqrt(-disc) / (2 * a); //有两个共轭复根
printf("x1=%8.2f+%.2fi\t,x2=%8.2f-%.2fi\n",realpart,imagpart,realpart,imagpart);
}
return 0;
}
对于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(flag0)
{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个系数之间以空格隔开!
#include iostream
#include cmath
using namespace std;
int main()
{float a,b,c;float x1,x2; cinabc;float dlt=b*b-4*a*c;if(dlt=0){x1=-b/2/a+sqrt(dlt)。
/2/ax2=-b/2/a-sqrt(dlt)/2/a。
couta"x^2+"b"x+"c"=0有两个实根:";cout"x1="x1",x2="x2endl;}
else
{x1=-b/2/a;x2=sqrt(-dlt)/2/a;couta"x^2+"b"x+"c"=0有两个虚根:"。
cout"x="x1"+/-"x2"i"endl;}
return 0。
扩展资料:
成立条件:
一元二次方程成立必须同时满足三个条件:
①是整式方程,即等号两边都是整式,方程中如果有分母;且未知数在分母上,那么这个方程就是分式方程,不是一元二次方程,方程中如果有根号,且未知数在根号内,那么这个方程也不是一元二次方程(是无理方程)。
②只含有一个未知数;
③未知数项的最高次数是2。
参考资料来源:百度百科-c语言
二次函数有很多种的,ax^2+bx+c=0,(a不等于0,b^2-4ac0)的二次函数只是其中的一种,其解是x=[-b±(b^2-4ac)^(1/2)]/2a ,
若b^2-4ac0,则函数将产生虚根,x=[-b±i(b^2-4ac)^(1/2)]/2a 式中i为虚数