문제 2】 예약일자는 YYYY-MM-DD로 구성되어 있다. 월일(MM-DD)에 상관없이 YYYY가 1999인 자료 중에서 (예약수량 * 예약금액)의 값이 가장 작은 자료의 일련번호를 출력하시오. 만약 작은 값이 중복될 경우는 중복자료 중 가장 큰 일련번호를 출력하시오.(20점)
=> 일반적인 ''''''''최소값 구하기'''''''' 가 아니라 ''''''''예약수량*예약금액'''''''' 이 최소값을 가질 경우 일련번호를 출력하는 문제입니다.
Sub main() ''필수 인수 선언 Dim 인수1, 인수2, i, 버퍼 As Variant ''핵심 인수 선언 Dim 예약일자, 예약수량, 예약금액, 일련번호, 최소값, 최대일련번호 As Variant ''인수 처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " "))) ''최소값 처리 최소값 = 9999999999# ''입력파일처리 Open "c:\c_it\data\san0105.txt" For Input As #1 For i = 1 To 인수2 Line Input #1, 버퍼 If i >= 인수1 Then ''변수저장 예약일자 = Trim(Mid(버퍼, 8, 4)) 예약수량 = Val(Mid(버퍼, 18, 5)) 예약금액 = Val(Mid(버퍼, 23, 10)) 일련번호 = Trim(Mid(버퍼, 1, 7)) ''합계 If 예약일자 = "1999" Then If 최소값 < 예약수량 * 예약금액 Or _ (최소값 = 예약수량 * 예약금액 And 최대일련번호 < 일련번호) Then 최소값 = 예약수량 * 예약금액 최대일련번호 = 일련번호 End If End If End If Next i Close #1 ''출력파일처리 Open "c:\c_it\data\ans1.txt" For Output As #2 Print #2, 인수1, 인수2, 최대일련번호 End Sub 이러면 안되나요.ㅠㅠ
맞는 소스가먼가요.ㅠㅠ
결과값이 ㅡ.ㅜ안나와요.. |