二次方程式を解くプログラムを書こうとしています。(B ** B-4 * A * C)の値が0または負の場合、すぐに「方程式の根は複雑です」と書く必要がありますが、正の場合、評価する必要があります。A、B、Cにどのような値を付けても、論理に誤りがあるようです。「方程式の根は複雑です」と表示され続けます。以下のコードと結果をご覧ください。ありがとう。
PROGRAM QUADEQN
INTEGER A,B,C
REAL D,X,Y,Q
D=(B**2-4*A*C)
Q=SQRT(D)
READ(*,5)A
READ(*,6)B
READ(*,7)C
IF(B**2-4*A*C)10,15,20
X=(-B+Q)/(2*A)
Y=(-B-Q)/(2*A)
20 WRITE(*,25)X,Y
5 FORMAT(I2)
6 FORMAT(I2)
7 FORMAT(I2)
10 WRITE(*,*)'THE ROOTS OF THE QUADRATIC EQUATION IS COMPLEX'
15 WRITE(*,*)'THE ROOTS OF THE QUADRATIC EQUATION IS COMPLEX'
25 FORMAT(/,'THE ROOTS OF THE EQN ARE',1X,F8.4,'AND',1X,F8.4)
STOP
END
結果
D:\ Postgraduate \ Programming \ FORTRAN> gfortran quad.f
D:\ Postgraduate \ Programming \ FORTRAN> a.exe 832二次方程式の根は複雑です二次方程式の根は複雑です
D:\ Postgraduate \ Programming \ FORTRAN>