fortran 输出的宽度/换行问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 07:59:45
我有一个数组,按下面语句写入文件
write(2,*) (i,(coor(j,i),j=1,3),i=1,4)
结果是
1 -6317.661000000000000 -70.000000000000000
-1352.300000000000000 2 -6317.661000000000000
-70.000000000000000 -1332.300000000000000 3
-6317.661000000000000 -70.000000000000000 -1312.300000000000000
4 -6317.661000000000000 -70.000000000000000
-1292.300000000000000
请问这是为什么?不是应该在每次输出i之前换行吗?

你的语句实际上没有换行,是一串数据,但系统默认会以3个数据为一行输出。

如果要达到你想要的目的,可以改成这样:
write(*,"(i1,3f/)") (i,(coor(j,i),j=1,3),i=1,4)

对格式进行调整,i1为1个整数,3f为3个浮点数,/为换行。