2번문제 질문인데요
밑에와 같이 코딩해도 되는지요??
답은 같게 나왔거든요
근데 선생님께서 코딩하신것과 틀려서 질문 드립니다^^
아 그리고 선생님께서 코딩하신것 중에 최대고객번호 초기화라든지
변수저장을 안하셨던데 이거 필요 없나요??
Option Explicit
Sub MAIN() ''''''''필수변수선언 Dim 인수1, 인수2, i, 버퍼 As Variant ''''''''핵심변수선언 Dim 승객만족도, 좌석코드, 월이용횟수, 열차요금, 도착지코드(1000), 고객번호(1000), 합계(1000), j, Num, Temp 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 i = 1 To 인수2 Line Input #1, 버퍼 If i >= 인수1 Then ''''''''변수저장 승객만족도 = Val(Mid(버퍼, 16, 2)) 좌석코드 = Trim(Mid(버퍼, 8, 2)) 월이용횟수 = Val(Mid(버퍼, 32, 2)) 열차요금 = Val(Mid(버퍼, 10, 6)) ''''''''합계구하기 If (승객만족도 Mod 2) = 0 And 좌석코드 = "HE" Then Num = Num + 1 고객번호(Num) = Val(Mid(버퍼, 1, 5)) 합계(Num) = 월이용횟수 + (열차요금 * 0.4) 도착지코드(Num) = Trim(Mid(버퍼, 22, 2)) 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 Temp = 도착지코드(i) 도착지코드(i) = 도착지코드(j) 도착지코드(j) = Temp End If Next j Next i Close #1 ''''''''출력파일처리 Open "c:\c_it\data\ans2.txt" For Output As #2 Print #2, 인수1, 인수2, 도착지코드(Num) Close #2 End Sub
|