C语言解一元二次方程(包含虚数解) 100

我用C语言能解实数范围的一元二次方程,但解不来虚数方程的,关键在于怎么把虚数的j当答案输出(j^2=-1)。代码如下,主要是if(d<0)的部分有问题,别的都检查过没问题... 我用C语言能解实数范围的一元二次方程,但解不来虚数方程的,关键在于怎么把虚数的j当答案输出(j^2=-1)。代码如下,主要是if(d<0)的部分有问题,别的都检查过没问题。 展开
 我来答
xuzhouliuying
高粉答主

2017-10-02 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.5亿
展开全部

表示虚数一般不用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("方程的解为任意实数");
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式