인수값을 100 200 넣으면 990193 값이 나와야 하는데
990169 라는 값이 나옵니다.
뭐가 잘못되었는지...
※ 학번은 중복되어 있지 않으며 학번에 대해 오름차순 정렬되어 있다..
문제 1】 지역코드가 B 인 자료에 대하여 (국어점수 + 영어점수)으로 내림차순 정렬했을 때 5번째 학번 출력하시오. 동일값 발생시 학번에 대한 오름차순 정렬하시오.(20점) (※ 결과 값은 수검자 PC의 C:\C_it\data\Ans1.txt 파일에 출력되도록 프로그램을 작성할 것) ==================================================================================
Option Explicit
Sub main()
''필수변수선언 Dim 인수1, 인수2, 버퍼, i As Variant ''핵심변수선언 Dim 지역코드, 국어, 영어, 합계(1000), 학번(1000), j, Temp, Num As Variant
''인수처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) ''입력파일처리 Open "c:\c_it\data\abc1115.txt" For Input As #1 For i = 1 To 인수2 Line Input #1, 버퍼 If i >= 인수1 Then ''변수저장 국어 = Val(Mid(버퍼, 10, 3)) 영어 = Val(Mid(버퍼, 13, 3)) 지역코드 = Trim(Mid(버퍼, 30, 1)) If 지역코드 = "B" Then Num = Num + 1 합계(Num) = 국어 + 영어 학번(Num) = Val(Mid(버퍼, 1, 6)) End If End If Next i ''정렬(합계 내림차순or(합계=합계 and 학번 오름차순) For i = 1 To Num For j = i To Num If 합계(i) < 합계(j) _ Or (합계(i) = 합계(j) And 학번(i) > 학번(j)) Then Temp = 합계(i) 합계(i) = 합계(j) 합계(j) = Temp Temp = 학번(i) 학번(i) = 학번(j) 학번(j) = Temp End If Next j Next i Close #1 ''출력파일처리 Open "c:\c_it\data\qqq.txt" For Output As #2 Print #2, 인수1, 인수2, 학번(5) Close #2
End Sub
|