기사기출 050506-오전 문제인데요, 답은 990173인데 제가 작성한 것은 990179로 나옵니다. 할 수 있는데 까지는 찾으려고 애썼지만 한계에 온 것 같아요 ㅜ ㅠ 번거로우시겠지만 부탁드립니다.....
Option Explicit
Sub main() ''''필수변수저장 Dim 인수1, 인수2, 버퍼, k As Variant ''''핵심변수저장 Dim 통학코드, 영어점수, 수학점수, 합계(1000), 학번(1000), p, num, temp As Variant ''''인수처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " ")))
''''입력파일처리 Open "c:\c_it\data\res0105.txt" For Input As #1 For k = 1 To 인수2 Line Input #1, 버퍼 If k >= 인수1 Then ''''변수저장 통학코드 = Trim(Mid(버퍼, 16, 1)) 영어점수 = Val(Mid(버퍼, 20, 3)) 수학점수 = Val(Mid(버퍼, 23, 3)) ''''배열변수저장 If 통학코드 = "A" Or 통학코드 = "B" Then num = num + 1 합계(num) = 영어점수 + 수학점수 학번(num) = Val(Mid(버퍼, 1, 6)) End If End If Next k ''''정렬(합계 내림차순 OR ( 합계같음 AND 합계 오름차순)) For k = 1 To num For p = k To num If 합계(k) < 합계(p) Or (합계(k) = 합계(p) And 합계(k) > 합계(p)) Then temp = 합계(k) 합계(k) = 합계(p) 합계(p) = temp temp = 학번(k) 학번(k) = 학번(p) 학번(p) = temp End If Next p Next k
Close #1 ''출력파일처리 Open "C:\C_IT\DATA\ANS1.txt" For Output As #2 Print #2, 인수1, 인수2, 학번(5) Close #2
End Sub
|