English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

Problem 1、(程式設計分組,14分)
共有n個學校派學生參加程式設計比賽,主辦單位擬將所有參賽學生分成若干組進行初賽,分組原則:每一所學校的參賽學生必須被平均分派到各組,且分組的組數必須為最多。請設計一個程式,可依據各校參賽的學生人數,決定初賽最多可分成幾組比賽。(輸出結果的組數若非最多,則本題算錯,零分計算。)

輸入說明:輸入第一列為參賽的學校數n (n介於2~50)。
輸入第二列到第 n+1列分別為各校的參賽學生人數(每列的輸入值介於2~100)。
輸入範例:有3所學校派學生參加程式設計比賽,每一所學校的參賽學生分別有:8人、12人、48人。實際輸入之檔案內容如下:
實際輸入:(test1.txt)
3
8
12
48


輸出說明:輸出結果為分組的組數。
輸出範例:上例中有3所學校各派學生8人、12人、48人參加程式設計比賽,故最多可分成4組,每一組可有第一個學校2人,第二個學校3人,第三個學校12人。實際輸出之檔案內容如下:
實際輸出:(result1.txt)
4

Problem 2、(購買花朵,10分)
鬱金香一朵50元、香水百合一朵10元、白玫瑰一朵5元、滿天星一朵1元,現王先生有一筆金額N (0
輸入說明:輸入金額n。
輸入範例:假定王先生有 78元。實際輸入之檔案內容如下:
實際輸入:(test2.txt)
78

輸出說明:第一列為花朵總數。第二列到第五列分別為鬱金香、香水百合、白玫瑰、滿天星的花朵數。
輸出範例:上例中王先生有 78元,能買到最少的花朵數分別為鬱金香1朵、香水百合2朵白、玫瑰1朵、滿天星3朵。實際輸出之檔案內容如下:
實際輸出:(result2.txt)
7
1
2
1
3

2006-04-25 15:58:00 · 1 個解答 · 發問者 ? 1 in 電腦與網際網路 程式設計

有沒有人可以幫忙解答一下...拜託!!!

2006-04-25 17:48:11 · update #1

1 個解答

Private Sub Command1_Click() '第一題Dim S$, N%, I%, J%, f&Do  S = InputBox("請輸入參賽的學校數 2~50")  If S = "" Then Exit SubLoop Until Val(S) > 1 And Val(S) < 51N = Int(S)ReDim A(N - 1) As IntegerFor I = 1 To N    Do      S = InputBox("請輸入第" & I & "所學校之參賽學生人數 2~100")      If S = "" Then Exit Sub    Loop Until Val(S) > 1 And Val(S) < 101    A(I - 1) = Int(S)Nextf = FreeFileOpen "C:\Test1.txt" For Output As #fPrint #f, CStr(N)For I = 0 To N - 1    J = GCD(J, A(I))    Print #f, CStr(A(I))NextClose #fOpen "C:\result1.txt" For Output As #fPrint #f, CStr(J)Close #fMsgBox "已將 Test1.txt 及 result1.txt 放在C:\"End SubFunction GCD(ByVal A&, ByVal B&) As LongDim T&Do While A Mod B <> "0"  T = A Mod B: A = B: B = TLoopGCD = BEnd FunctionPrivate Sub Command2_Click() '第二題Dim A() As Integer, S, N%, I%, J%, f&Do  S = InputBox("請輸入金額")  If S = "" Then Exit SubLoop Until Val(S) > 0 And Val(S) < 100N = Int(S)f = FreeFileOpen "C:\Test2.txt" For Output As #fPrint #f, CStr(N)Close #fS = Array(50, 10, 5, 1)Do  ReDim Preserve A(I)  A(I) = N \ S(I)  J = J + A(I)  If N Mod S(I) = 0 Then Exit Do  N = N Mod S(I): I = I + 1Loopf = FreeFileOpen "C:\result2.txt" For Output As #fPrint #f, CStr(J)For I = 0 To UBound(A)    If A(I) Then Print #f, CStr(A(I))NextClose #fMsgBox "已將 Test2.txt 及 result2.txt 放在C:\"End Sub

2006-04-26 09:04:33 · answer #1 · answered by W.J.S. 7 · 0 0

fedest.com, questions and answers