在c语言中,如果直接在公式中输出i,编译器会将其当成一个变量,且是一个未定义的变量,从而出现错误。所以我们需要采取一种方式,巧妙地回避这样的问题
即将复数的实部和虚部分别输出
举个例子,当我们用程序解ax2+bx+c=0时,会出现b2-4ac<0的情况,此时需要使用虚数
倘若我们直接将公式打出
x1
=(-b
+sqrt(-b
*b
+4*a
*c
)*i
)/(2*a
);
x2
=(-b
-sqrt(-b
*b
+4*a
*c
)*i
)/(2*a
);
则会出现这样的报错提示 因此我们可以采用这样的方式,巧妙地避开了这样的问题
t
=sqrt(4*a
*c
-b
*b
)/(2*a
);
printf("The roots of the equation are %.2f+-i%.2f.",-b
/(2*a
),t
);