找到阵列中的最小值,fortran

时间:2014-01-22 20:23:35

标签: fortran

我需要帮助我的朋友。这是一项简单的任务。我需要在数组中找到一个最小的元素。

program TEST
    ! your code goes here
    integer a(5), n, min
    a = (/2, -5, 3, 5, 8/)
    n = 5
    min = a(1)

    !reading from keyboard
    !do i=1,n
     !read*,a(i)
    !end do

    print*, 'array:'
    do i=1,n
     print*,a(i)
    end do

    !print*, 'отладка, поиск минимального:'
    do i=2,n
     if (min .lt. a(i)) then
      min = a(i)
      !print*, min, a(i), ' '
     end if
    end do

    print*, 'minimal: '
    print*, min

    stop
end

因此。我根本没有alghoritm的问题。我很容易用任何其他语言来做))但不存在。我比较mina(i)时出现问题。

Programm始终认为min < a(i)。为什么?因此min8,因为8是最后一个。

1 个答案:

答案 0 :(得分:5)

你想找到最小的a(i),所以到目前为止你的最小测试是错误的方法:使用if (a(i).lt.min) min=a(i)或者代替。

但您可能需要考虑MINVAL(a)