MST

星途 面试题库

面试题:Fortran循环结构中的循环嵌套问题

在Fortran中,假设有一个二维数组A,大小为10x10,需要使用循环嵌套来计算数组中所有元素的和,请写出相应的Fortran代码,并解释外层循环和内层循环的执行逻辑。
14.5万 热度难度
编程语言Fortran

知识考点

AI 面试

面试题答案

一键面试
program sum_of_array
    implicit none
    integer :: A(10, 10)
    integer :: i, j
    integer :: sum = 0

    ! 初始化数组A,这里假设已有初始化值,实际应用中应根据需求初始化
    ! 例如 A = reshape((/1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, &
    !                    21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, &
    !                    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, &
    !                    61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, &
    !                    81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100/), [10, 10])

    do i = 1, 10
        do j = 1, 10
            sum = sum + A(i, j)
        end do
    end do

    print *, '数组所有元素的和为:', sum
end program sum_of_array

外层循环执行逻辑

  • 外层循环变量 i 从1到10依次取值。每取一个值,就表示处理数组 A 的一行。当 i = 1 时,处理数组的第一行;当 i = 2 时,处理数组的第二行,以此类推。

内层循环执行逻辑

  • 对于外层循环的每一个 i 值,内层循环变量 j 从1到10依次取值。在每一个 i 值下,内层循环会遍历该行的所有列元素。例如,当 i = 1 时,内层循环会依次计算 A(1, 1)A(1, 2)A(1, 3) 直到 A(1, 10) 并累加到 sum 中;当 i = 2 时,内层循环又会依次计算 A(2, 1)A(2, 2) 直到 A(2, 10) 并累加到 sum 中,最终实现对整个二维数组所有元素的求和。