2014-01-22 5 views
0

나는 나의 친구를 도와야한다. 그것은 간단한 작업입니다. 배열에서 가장 작은 요소를 찾아야합니다.어레이, 포트란에서 최소값을 찾는 것

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)을 비교할 때 문제가 발생합니다.

프로그래머는 항상 min < a(i)라고 생각합니다. 왜? 따라서 8이 마지막이므로 min8이됩니다.

답변

5

최소 a(i)을 찾으려면 지금까지 최소 테스트가 잘못되었습니다. if (a(i).lt.min) min=a(i)을 사용하거나 대신 사용하십시오.

그러나 MINVAL(a)을 고려해 볼 수 있습니다.

+0

변수의 공백과 잘못된 순서 때문에 'if (min. lt. a (i))'라고 생각합니다. 나는 그것의 동등한'min

+0

잊어 버려) 이제 괜찮아. 내 실패. 나는 오해를했다. –

관련 문제