0

我正在编写一个必须求解平方根并导致得到一个复数的 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
4

1 回答 1

2

由于 a、b 和 c 都是实数,因此赋值右侧的表达式将以实数算术计算。将其分配给左侧的复杂变量不会改变这一点。如果您希望以复数形式完成计算,最简单的方法是将 a、b 和 c 声明为复数。

于 2013-01-03T18:54:55.317 回答