1번 풀었는데 답이 안 나오네요.. 어디가 틀렸는지 보이지도 않고,, @ㅡ@;; 소스코딩한 거 올릴테니까 좀 봐주세요^^
Sub main()
''필수 변수 선언 Dim 인수1, 인수2, K, 버퍼 As Variant
'' 핵심 변수 선언 Dim 예약실구분코드, 투숙기간, 누적점수, 할인금액, 합계(1000), P, Temp, Num, 숙박요금(1000), 예약번호(1000) As Variant
''인수 처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " ")))
''입력 파일 처리 Open "c:\c_it\data\abc0002.txt" For Input As #1 For K = 1 To 인수2 Line Input #1, 버퍼 If K >= 인수1 Then '' 변수 저장 투숙기간 = Val(Mid(버퍼, 15, 2)) 할인금액 = Val(Mid(버퍼, 30, 4)) 예약실구분코드 = Trim(Mid(버퍼, 38, 2)) 누적점수 = Val(Mid(버퍼, 40, 5)) '' 합계 구하기 If 예약실구분코드 = "WA" Or 투숙기간 <= 13 Then Num = Num + 1 합계(Num) = 누적점수 + 할인금액 숙박요금(1000) = Val(Mid(버퍼, 19, 6)) 예약번호(1000) = 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 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, 숙박요금(4) Close #2
End Sub
|