我正在编写一个Fortran,它必须解决平方根并导致获得一个复数,但Fortran不打印它或将其传递给另一个变量。它给出(NaN,0.000)。
这是一个虚拟代码,用于表示我正在使用的实际代码所遇到的问题。如果你们能给我任何有用的信息。谢谢。
program test
IMPLICIT NONE
COMPLEX X
REAL a, b, c
a = 1
b = 1
c = 1
X = sqrt(b - 4*a*c)
print *, REAL(X), ' - j',-AIMAG(X)
end program test
答案 0 :(得分:2)
由于a,b和c都是实数,因此赋值右侧的表达式将以实数算术计算。将其分配给左侧的复杂变量不会改变它。如果您希望将计算作为复数值完成,最简单的方法是将a,b和c声明为复数。