我有一个接受三个数字的程序,并计算这三个数字是否形成一个三角形。如果是,则打印三面和周边。但是,出于某种原因,在打印周边时,不是说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
答案 0 :(得分:1)
这是你的格式声明:
PerimeterFormat = "(' ',10A,X,F7.1)"
对于带有Fortran输出的字符,您需要将的长度设置为指定符A
,即:
PerimeterFormat = "(' ',A10,X,F7.1)"
更改它应该修复它(它使用gfortran 4.6.3为我做了)。