You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran格式字符串用变量并实现值的并排输出

解决Fortran数组元素并排输出的问题

你可以通过以下几种方式实现数组元素在同一行输出:

方法1:使用重复格式符

Fortran的格式字符串支持用*(格式符)来重复应用该格式,直到所有输出项处理完毕。修改你的write语句即可:

program test_fmt
implicit none
integer i, nvar
real ::j(2)=(/1.234,5.678/)
nvar=2
write(*,'(*(f10.5))')(j(i),i=1,nvar)
! 更简洁的写法:直接输出整个数组,无需循环
! write(*,'(*(f10.5))') j
end

这种写法兼容GNU Fortran 4.8.5,会把所有数组元素按指定格式并排输出在同一行。

方法2:动态生成格式字符串

如果需要更灵活地根据变量nvar控制格式,可以先构造包含对应数量格式符的格式字符串:

program test_fmt
implicit none
integer i, nvar
real ::j(2)=(/1.234,5.678/)
character(len=20) fmt
nvar=2
! 动态生成格式字符串,比如nvar=2时生成'(2f10.5)'
write(fmt, '(a,i0,a)') '(', nvar, 'f10.5)'
write(*, fmt) j
end

原代码换行的原因

你原来的格式(f10.5)每次仅处理一个输出项,当格式处理完所有指定的格式符后,Fortran会自动换行,所以每个数组元素单独占一行。而上述方法通过重复格式或生成包含足够格式符的字符串,让所有元素在一次格式处理中完成输出,从而实现并排显示。

内容的提问来源于stack exchange,提问作者user86927

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:33:25