문제 1】출발지 코드가 SU이고 승객만족도가 23 이하인 자료에 대하여 (월이용회수 * 여행거리)에 따라 내림차순
했을 때 5번째 고객번호를 출력하시오. 동일값 발생시 고객번호로 오름차순 정렬하여 처리 하시오.(20점)
Sub main()
''필수변수선언 Dim 인수1, 인수2, k, 버퍼 As Variant
''핵심변수선언 Dim 출발지코드, 승객만족도, 월이용회수, 여행거리, 고객번호(1000), 합계(1000), p, temp, num As Variant
''인수처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " ")))
''입력파일처리
Open "c:\c_it\data\abc1112.txt" For Input As #1
For k = 1 To 인수2 Line Input #1, 버퍼 If k >= 인수1 Then ''변수저장 출발지코드 = Trim(Mid(버퍼, 20, 2)) 승객만족도 = Val(Mid(버퍼, 16, 2)) 월이용회수 = Val(Mid(버퍼, 32, 2)) 여행거리 = Val(Mid(버퍼, 27, 5)) ''배열변수구하기 If 출발지코드 = "SU" And 승객만족도 <= 23 Then num = num + 1 합계(num) = 월이용회수 + 여행거리 고객번호(num) = Val(Mid(버퍼, 1, 5)) End If End If Next k ''정렬 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
숫자들은 다 맞거든요. 기사(050508) 기출인데 답이 다르게 나와요 다운받은 소스코딩이랑 똑같은 거 같은데...ㅠㅠ 어디가 잘못되었는지 좀 봐주세요 |