C语言解一元二次方程(包含虚数解) 100
我用C语言能解实数范围的一元二次方程,但解不来虚数方程的,关键在于怎么把虚数的j当答案输出(j^2=-1)。代码如下,主要是if(d<0)的部分有问题,别的都检查过没问题...
我用C语言能解实数范围的一元二次方程,但解不来虚数方程的,关键在于怎么把虚数的j当答案输出(j^2=-1)。代码如下,主要是if(d<0)的部分有问题,别的都检查过没问题。
展开
1个回答
展开全部
表示虚数一般不用j表示,而是用i表示。输出的时候后面带上i就可以了。
判别式变量d为负时,用sqrt(-d)
形如ax²+bx+c=0的方程的完整程序如下:
#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,dlt;
printf("请输入a、b、c: ");
scanf("%f%f%f",&a,&b,&c);
if(a)
{
dlt=b*b-a*c*4;
if(dlt>0)
printf("x1=%f\nx2=%f",(-b+sqrt(dlt))/(a*2),(-b-sqrt(dlt))/(a*2));
else if(dlt<0)
printf("x1=%f+%fi\nx2=%f-%fi",-b/(a*2),abs(sqrt(-dlt)/(a*2)),-b/(a*2),abs(sqrt(-dlt)/(a*2)));
else printf("x=%f",-b/(a*2));
}
else
{
if(b) c?printf("x=%f",-c/b):printf("x=%f",abs(-c/b));
else c?printf("方程无实数解"):printf("方程的解为任意实数");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询