어려운 문제는 아닌데 답이 제대로 안 나오네요.
1번문제는 결과값 아예 안 나오고, 2번문제는 결과값이 0 이 나와요.
Option Explicit
Sub main()
''필수 변수 선언 Dim 인수1, 인수2, 버퍼, i As Variant
''핵심 변수 선언 Dim 입원실, 입원료(1000), 환자등록번호(1000), j, Temp, Num As Variant
''인수 처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " ")))
''입력 파일 처리 Open "c:\c_it\data\abc21.txt" For Input As #1 For i = 1 To 인수2 Line Input #1, 버퍼 If i > 인수1 Then ''변수 저장 입원실 = Trim(Mid(버퍼, 30, 9)) ''배열변수 구하기 If 입원실 = "특실" Then Num = Num + 1 입원료(Num) = Val(Mid(버퍼, 41, 4)) 환자등록번호(Num) = Trim(Mid(버퍼, 1, 9)) 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, 환자등록번호(3)
Close #2
End Sub
2번문제=================================================================
Option Explicit
Sub main()
''필수 변수 선언 Dim 인수1, 인수2, 버퍼, i As Variant
''핵심 변수 선언 Dim 입원실, 입원료, 최대값 As Variant
''인수 처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " ")))
''입력 파일 처리 Open "c:\c_it\data\abc21.txt" For Input As #1 ''최대값 초기화 최대값 = 0 For i = 1 To 인수2 Line Input #1, 버퍼 If i > 인수1 Then ''변수 저장 입원실 = Trim(Mid(버퍼, 30, 9)) 입원료 = Val(Mid(버퍼, 41, 4)) ''최대값 구하기 If 입원실 = "특실" Or 입원실 = "2인실" Then If 최대값 < 입원료 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, 최대값
Close #2
End Sub 어려운 문제는 아닌데 답이 제대로 안 나오네요.
1번문제는 결과값 아예 안 나오고, 2번문제는 결과값이 0 이 나와요.
Option Explicit
Sub main()
''필수 변수 선언 Dim 인수1, 인수2, 버퍼, i As Variant
''핵심 변수 선언 Dim 입원실, 입원료(1000), 환자등록번호(1000), j, Temp, Num As Variant
''인수 처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " ")))
''입력 파일 처리 Open "c:\c_it\data\abc21.txt" For Input As #1 For i = 1 To 인수2 Line Input #1, 버퍼 If i > 인수1 Then ''변수 저장 입원실 = Trim(Mid(버퍼, 30, 9)) ''배열변수 구하기 If 입원실 = "특실" Then Num = Num + 1 입원료(Num) = Val(Mid(버퍼, 41, 4)) 환자등록번호(Num) = Trim(Mid(버퍼, 1, 9)) 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, 환자등록번호(3)
Close #2
End Sub
2번문제=================================================================
Option Explicit
Sub main()
''필수 변수 선언 Dim 인수1, 인수2, 버퍼, i As Variant
''핵심 변수 선언 Dim 입원실, 입원료, 최대값 As Variant
''인수 처리 인수1 = Val(Left(Command, InStr(Command, " "))) 인수2 = Val(Mid(Command, InStr(Command, " ")))
''입력 파일 처리 Open "c:\c_it\data\abc21.txt" For Input As #1 ''최대값 초기화 최대값 = 0 For i = 1 To 인수2 Line Input #1, 버퍼 If i > 인수1 Then ''변수 저장 입원실 = Trim(Mid(버퍼, 30, 9)) 입원료 = Val(Mid(버퍼, 41, 4)) ''최대값 구하기 If 입원실 = "특실" Or 입원실 = "2인실" Then If 최대값 < 입원료 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, 최대값
Close #2
End Sub
|