MST

星途 面试题库

面试题:Fortran高级数组技术之数组切片应用

在Fortran中,假设有一个二维数组 `A(10, 10)`,请编写代码提取出第3到第7行、第4到第8列的子数组,并将其赋值给另一个新的二维数组 `B`,请简述实现思路并给出完整代码。
12.8万 热度难度
编程语言Fortran

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 定义原始二维数组 A 和目标二维数组 B
  2. 使用数组切片操作,提取 A 数组中指定的行和列范围,即第3到第7行、第4到第8列。
  3. 将提取出的子数组赋值给 B 数组。

完整代码

program extract_subarray
    implicit none
    integer :: A(10, 10)
    integer :: B(5, 5)
    integer :: i, j

    ! 初始化A数组,这里简单赋值,实际应用中可从文件等读取数据
    do i = 1, 10
        do j = 1, 10
            A(i, j) = i * 10 + j
        end do
    end do

    ! 提取子数组并赋值给B
    B = A(3:7, 4:8)

    ! 输出B数组以验证结果
    do i = 1, 5
        do j = 1, 5
            write(*,*) B(i, j)
        end do
    end do
end program extract_subarray