3 つの数値を受け取り、その 3 つの数値が三角形を形成するかどうかを計算するプログラムがあります。含まれている場合は、3 辺と周囲が印刷されます。ただし、何らかの理由で、周囲を印刷すると、Perimeter= 3
(たとえば)と言う代わりに、と表示されますPerimeter= @@
。何が原因でしょうか?Fortran を使うのはこれが初めてなので、少し迷っています。
PROGRAM G6P1
IMPLICIT NONE
REAL :: a, b, c, perimeter
CHARACTER(LEN=30) :: Format, PerimeterFormat
Format = "(3(2(A,X),F6.1,A,2X))"
PerimeterFormat = "(' ',10A,X,F7.1)"
PRINT *,'Please enter 3 numbers to form a triangle'
READ *, a, b, c
IF (a+b.gt.c) THEN
IF (b+c.gt.a) THEN
IF (a+c.gt.b) THEN
PRINT *,'It is a triangle!'
WRITE (*,Format) 'A','=',a,';','B','=',b,';','C','=',c,';'
perimeter = A+B+C
WRITE (*,PerimeterFormat) '','Perimeter=',perimeter
ELSE
PRINT *,'The sides do not form a triangle'
WRITE (*,Format) 'A','=',a,';','B','=',b,';','C','=',c,';'
ENDIF
ELSE
PRINT *,'The sides do not form a triangle'
WRITE (*,Format) 'A','=',a,';','B','=',b,';','C','=',c,';'
ENDIF
ELSE
PRINT *,'The sides do not form a triangle'
WRITE (*,Format) 'A','=',a,';','B','=',b,';','C','=',c,';'
ENDIF
END PROGRAM G6P1