확인좀 부탁드립니다...값이 자꾸 틀리게 나오네요
문제는 04년 11월 06일 입니다.......(2문제인데 같이 올리니 에러가 나서 위아래 나누어서 질문드립니다... 우선 1번 문제입니다)
(중급형문제입니다)
고객번호 열차코드 좌석코드 열차요금 승객만족도 고객구분코드 출발지코드 도착지코드
숫자5 문자2 문자2 숫자6 숫자2 문자2 문자2 문자2
탑승인원 여행거리 월이용횟수
숫자3 숫자5 숫자2
문제1) 출발지코드가 SU이고 승객만족도가 23이하인 자료에 대하여 (월이용횟수 * 여행거리)값에 따라 내림차순 정렬했을때 5번째 자료의 고객번호를 출력하시오. 동일값 발생시 고객번호에 대해 오름차순 정렬하여 처리 하시오.
정답 359 509 --> 40410 / 49 149 --> 40074
* 제가한 코딩입니다(틀린부분 확인 부탁드립니다)
Option Explicit
Sub main()
''''필수변수지정
Dim 인수1, 인수2, 버퍼, i As Variant ''''핵심변수지정
Dim 출발지코드, 승객만족도, 월이용횟수, 여행거리, 합계(1000), 고객번호(1000), temp, num, j As Variant
''''인수지정
인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) ''''입력파일지정
Open "c:\c_it\data\abc0026.txt" For Input As #1 For i = 1 To 인수2 Line Input #1, 버퍼 If i >= 인수1 Then ''''변수값저장 승객만족도 = Val(Mid(버퍼, 16, 2)) 월이용횟수 = Val(Right(버퍼, 2)) 여행거리 = Val(Mid(버퍼, 27, 5)) 출발지코드 = Trim(Mid(버퍼, 20, 2)) ''''핵심알고리즘 If 출발지코드 = "SU" And 승객만족도 <= 23 Then num = num + 1 합계(num) = (월이용횟수 * 여행거리) 고객번호(num) = Val(Left(버퍼, 5)) End If End If Next i ''''정렬알고리즘 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 End If Next j Next i Close #1 ''''출력파일처리 Open "c:\c_it\data\ans1.txt" For Output As #2 Print #2, 인수1, 인수2, 고객번호(5) Debug.Print 인수1, 인수2, 고객번호(5) Close #2 End Sub
|