1번문제는
문제 1】 (숙박요금 - 할인금액)에 따라 오름차순 정렬하였을 때 3번째 자료의 고객구분코드를 출력하시오. 동일값 발생시 예약번호로 내림차순 정렬하여 처리 하시오.(20점)
근데 답이 "IN"으로 나왔는데 소스 보니깐 소스도 틀리던데요..
소스도 이상해요 문제랑 소스도 안맞는것 같은데요..
Option Explicit
Sub main()
''필수 변수 선언 Dim 인수1, 인수2, K, 버퍼 As Variant ''핵심 변수 선언 Dim 숙박요금, 할인금액, 합계(1000), 고객구분코드(1000), 예약번호(1000), P, Temp, Num As Variant ''인수 처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) ''입력 파일 처리 Open "c:\c_it\data\abc0105.txt" For Input As #1 For K = 1 To 인수2 Line Input #1, 버퍼 If K >= 인수1 Then ''변수 저장 숙박요금 = Val(Mid(버퍼, 19, 6)) 할인금액 = Val(Mid(버퍼, 30, 4)) Num = Num + 1 합계(Num) = 숙박요금 - 할인금액 고객구분코드(Num) = Trim(Mid(버퍼, 17, 2)) 예약번호(Num) = Val(Mid(버퍼, 1, 6)) End If Next K ''정렬(합계 오름차순 or (합계 같음 and 예약번호 내림차순)) ''정렬되는 대상과 출력되는 대상이 다릅니다. ''그리고,정렬대상(합계),출력대상(고객구분코드),단이하(예약번호) 배열변수은 3개가 필요합니다. 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, 고객구분코드(3) Close #2 End Sub
|