문제를 잘 끊어서 해석하셔야 합니다. 아래의 소스를 확인해 주세요.
가장 큰값의 도착지 코드를 출력하되, 가장 큰(월이용회수*여행거리)값이 중복될경우 중복자료 중 가장 작은 고객번호의 도착지 코드를 출력하시오
Option Explicit
Sub main()
''필수 변수 선언 Dim 인수1, 인수2, K, 버퍼 As Variant ''핵심 변수 선언 Dim 출발지코드, 승객만족도, 월이용회수, 여행거리, 최대값, 도착지코드, 최소고객번호, 고객번호 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 ''최소고객번호 초기화 최소고객번호 = 999999999 최대값 = 0 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)) 고객번호 = Val(Mid(버퍼, 1, 5)) ''도착지코드 구하기 If 출발지코드 = "SU" And 승객만족도 <= 23 Then If 최대값 < (월이용회수 * 여행거리) Or _ (최대값 = (월이용회수 * 여행거리) And 최소고객번호 > 고객번호) Then 최대값 = 월이용회수 * 여행거리 최소고객번호 = 고객번호 도착지코드 = Trim(Mid(버퍼, 22, 2)) End If End If End If Next K Close #1 ''출력 파일 처리 Open "c:\c_it\data\ans2.txt" For Output As #2 Print #2, 인수1, 인수2, 도착지코드 Close #2 End Sub |