回 帖 发 新 帖 刷新版面

主题:菜鸟问题8

我想写一个子程序
[color=FF0000]以一列数组为参数,输出其中最大两项的节点数[/color]
自己对数组参数的表示方法和定义不太熟悉,
麻烦高数指点一下哦.看看下面的错误在那呢?
subroutine maxm2(k(n))
    implicit none
    integer a(n),k(n),m(n)
    integer i,j,a,b,n
    a(n)=k(n)
    do i=1,n-1
        do j=1,n-i
            if(a(j)<a(j+1)) then
                m(j)=j+1
                m(j+1)=j
            endif
        enddo
    enddo
    
    a=m(1)
    b=m(2)
    return
   end subroutine

回复列表 (共1个回复)

沙发

subroutine maxm2(k,n,a,b)
    implicit none
    integer,intent(in)::n
    integer,dimension(n),intent(in)::k
    integer,intent(out)::a,b
    ineger,dimension(n)::m
    integer::i,j
    
    
    
    do i=1,n-1
        do j=1,n-i
            if(k(j)<k(j+1)) then
                m(j)=j+1
                m(j+1)=j
            endif
        enddo
    enddo
    
    a=m(1)
    b=m(2)
    return
   end subroutine

算法部分没有看,不知道正不正确,至少定义变量是按照这个方式,好像这个算法效率不怎么高

我来回复

您尚未登录,请登录后再回复。点此登录或注册