1번
parameter n=7
integer a(n)
integer i,j , temp
A=(/67,33,21,84,49,50,75/)
do i=1,7
do j=1,7
if(a(i).lt.a(j)) goto 20
goto 30
20 temp=a(j)
a(j)=a(i)
a(i)=temp
30 continue
enddo
enddo
write(*,*) a
end
2번
parameter n=7
integer a(n)
integer i,j , temp
A=(/67,33,21,84,49,50,75/)
do i=1,7
do j=i+1,7
if(a(i).lt.a(j)) goto 20
goto 30
20 temp=a(j)
a(j)=a(i)
a(i)=temp
30 continue
enddo
enddo
write(*,*) a
end
여기서 1번이랑 2번이랑 바뀐건 do j=에서 1에서 7까지 인거랑 j=i+1에서 7까지 인건데
결과값은 1번은 오름차순으로 나오고 2번은 내림차순으로 나오거든요
뭐가 다른지 전혀 모르겠는데요...... 손으로 하나하나 따라가봐도 둘다 내림차순으로 가야되는거 아닌가요?
왜 1번은 오름차순으로 가는지 알려주세요
포트란 질문하는거 첨본다.
c로 번역해서 보여주면 알려준다.
인터넷에 떠있는 자료가 포트란의 수백배는 되는듯.... 포트란은 책도 별로 없고...C나 할껄 괜히 포트란 해서 ㅜㅜ
c가 안되면 자바라도 괞찮다.
제 능력은 포트란 까지 밖에 안되서요.....마음만이라도 감사합니다^^
아 오늘따라 왜이리 갤이 ㅂ명신같지.
결국 알았네요ㅎㅎ a(j),a(i)가 어떻게 변하는 지 중간에 과정을 나타내게 하니까 알게되었네요. 1번의 경우는 j가 다시 1부터 출발해서 i가 큰 수,j가 작은 수 있때 꼬여서 그러네요
ㅊㅋㅊㅋ