fortran输出问题

n个浮点数,想输出在一行,该n值是动态获得的。

你可以将格式控制里面的数据输出个数设置成一个很大的数,比如你要输出一个向量V,但是V的元素个数一开始不知道。那么你可以写如下命令
write(*,"(99F10.4)") V
只要你的向量V中元素个数不超过99个都可以在一行输出,99可以根据你对向量的估计换成其他数字。

对于如write(*,"(nF10.4)") V 换行的规则是:输出的数据个数大于n,或向量V输出完毕后换行
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-08
如果你使用 Visual Fortran 的 Windows 版本,你可以这样:

write(* , '(<n>f10.4)') rArray(1:N)

尖括号不是 Fortran 的标准语法,但 Visual Fortran 支持它。

另外一个办法就是用动态格式。

program Index_Test
implicit none
integer n
real :: rArray(20) = 3.0
character(Len=9) :: cFmt = "(??f10.4)"
n=20
write( cFmt(2:3) , '(i2)' ) n
write( * , cFmt ) rArray(1:N)
end program Index_Test