您的位置:

c语言求一元二次方程的复数根,一元二次方程的复数根求解

本文目录一览:

c语言 求一元二次方程的根,可以为复根 。求大神帮助

如果跟为复根且b等于0,那x1就成了-0.00。最后一个else内改为:

x1 = - b / (2 * a);

x2 = sqrt(-delt) / (2 * a);

x2 = (x2  0) ? x2 : -x2;

if(b!=0)

{

    printf("%.2f+%.2fi\n", x1, x2);

    printf("%.2f-%.2fi\n", x1, x2);

}

else

{

    printf("0.00+%.2fi\n",x2);

    printf("0.00-%.2fi\n",x2);

}

C语言编程 求一元二次方程的根 !!!

#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语言

c语言 求一元二次方程的根(含复根)

#include "stdio.h"

#include "math.h"

int main(void)

{int a,b,c;

double d,e,f;

scanf("%d %d %d",a,b,c);

d=a, e=b, f=c;

if (a==0)

if (b==0)

{printf("非法方程,请重新输入a,b,c“);

scanf("%d %d %d",a,b,c);d=a, e=b, f=c;}

else

if (b*b-4*a*c==0)

printf("x1=x2=%.6f\n",0-e/(2*d));

else

if (b*b-4*a*c0)

printf("x1=%.6f\nx2=%.6f\n",(-e+sqrt(e*e-4*d*f))/(2*d),(-e-sqrt(e*e-4*d*f))/(2*d));

else

{

【5】;

【6】

printf("x1=%.6f+%.6fi\nx2=%.6f+%.6fi\n",-e/(2*d),sqrt(4*d*f-e*e)/(2*d),-e/(2*d),-sqrt(4*d*f-e*e)/(2*d));

}

5,6没法填

用C语言编写求一元二次方程根的程序

用C语言编写求一元二次方程根的程序,条件判断的充分,步骤如下:

void main()

{

float a,b,c,delta;

scanf("%f%f%f",a,b,c);

if(a!=0)

{

delta=b*b-4*a*c;

if(delta==0)

printf("x1=x2=%7.2f",-b/(2*a));

else if(delta0)

{

printf("x1=%7.2f",(-b+sqrt(delta))/(2*a));

printf("x2=%7.2f",(-b-sqrt(delta))/(2*a));

}

else

{

printf("x1=%7.2f+i%7.2f",-b/(2*a),sqrt(-delta)/(2*a));

printf("x2=%7.2f-i%7.2f",-b/(2*a),sqrt(-delta)/(2*a));

}

}

else if(b!=0)

printf("x=%7.2f",-c/b);

else if(c==0)

printf("0=0,x为任意解

");

else

printf("%f=0,error!",c);

}