MST

星途 面试题库

面试题:Fortran条件语句与复杂逻辑结合

假设你有一个二维数组A(10,10),数组元素为0或1。编写Fortran代码,使用条件语句和循环,判断数组中是否存在连续三行(不考虑列方向)元素全为1的情况。如果存在,输出'存在连续三行全为1';如果不存在,输出'不存在连续三行全为1'。要求代码具有较高的可读性和效率。
13.6万 热度难度
编程语言Fortran

知识考点

AI 面试

面试题答案

一键面试
program check_rows
    implicit none
    integer, parameter :: rows = 10, cols = 10
    integer :: A(rows, cols)
    integer :: i, j
    logical :: found

   ! 初始化数组A,这里假设使用一些随机数或其他方式赋值,此处简单设为0
    A = 0

    found =.false.
    do i = 1, rows - 2
        logical :: all_ones
        all_ones =.true.
        do j = 1, cols
            if (A(i, j) /= 1) then
                all_ones =.false.
                exit
            end if
        end do
        if (all_ones) then
            all_ones =.true.
            do j = 1, cols
                if (A(i + 1, j) /= 1) then
                    all_ones =.false.
                    exit
                end if
            end do
            if (all_ones) then
                all_ones =.true.
                do j = 1, cols
                    if (A(i + 2, j) /= 1) then
                        all_ones =.false.
                        exit
                    end if
                end do
                if (all_ones) then
                    found =.true.
                    exit
                end if
            end if
        end if
    end do

    if (found) then
        print *, '存在连续三行全为1'
    else
        print *, '不存在连续三行全为1'
    end if
end program check_rows