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

Fortran77如何通过子程序将输入元素读取存入数组?

代码功能验证

你编写的固定格式Fortran代码已经可以实现预期功能:主程序声明长度为5的实型数组,传递给readData子程序后,子程序会循环5次从标准输入读取数值存入对应数组下标位置。

规范优化建议
  • 补充子程序内变量的显式声明,避免依赖隐式声明规则(Fortran默认首字母i、j、k、l、m、n开头的变量为整型,其余为实型),降低代码出错风险:
    • 子程序内补充数组声明real arr(5)
    • 补充循环变量声明integer i
  • 如果需要适配不同长度的数组,避免硬编码数组长度,可以将数组长度作为参数传递,修改后的子程序示例:
subroutine readData(arr, arr_len)
    integer arr_len
    real arr(arr_len)
    integer i
    do i = 1, arr_len
        read(*,*) arr(i)
    end do
return
end

主程序对应调用语句修改为call readData(arr, 5)即可。

  • 注意固定格式Fortran的语法要求:非注释行前6列为行号保留区,普通代码需要从第7列开始编写,你现有代码的缩进符合该要求。
修正后符合规范的完整代码
program main
    real arr(5)
    
    call readData(arr)
    stop
    end

    subroutine readData(arr)
    real arr(5)
    integer i
    do i=1, 5
        read (*,*) arr(i)
    end do
    return 
    end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:45:04