Lv 4
發問時間: 電腦與網際網路程式設計 · 2 0 年前

算錢的VB程式怎寫?

就像是 我有NT$651 他會自動算出 一張五百 一張一百 一個五十 一個一塊

已更新項目:

你這ㄍ程式不對 你ㄉ寫法是 不管輸入啥 都會顯示一樣的結果 我要的是 不一樣ㄉ= =

3 個解答

評分
  • 匿名使用者
    2 0 年前
    最佳解答

    修改方式一Private Sub Command1_Click()s = InputBox("輸入")For i = 1 To 4c = 0j = Choose(i, 500, 100, 50, 1)Do While s >= jIf (s - j) >= 0 Then  s = s - j  c = c + 1Else    Exit DoEnd IfLoopPrint c & "個" & j & Space(2);PrintNextEnd Sub修改方式二Private Sub Command1_Click()s = Val(InputBox("輸入"))For i = 1 To 4c = 0j = Choose(i, 500, 100, 50, 1)Do While s >= j    s = s - j    c = c + 1LoopPrint c & "個" & j & Space(2);PrintNextEnd Sub之前北上的沒法正確跑的主要原因是在於 s 為字串,卻和數字作比對(Do While s >= j)...所以這邊的 Do While  永遠都是在 True 所以這是一個錯誤。把它改為 數字型態則可以一勞永逸的解決,基本上這樣應該解決小於 500 的問題。至於你要的不一樣結果是指啥?不同的排列組合?那很簡單呀,把 Choose(i, 500, 100, 50, 1) 裡面的後面四個數字重新排列就可以了...怎麼排列?那就麻煩你自己想了,提示你這麼多了,也該自己動動腦了吧~如果搞不清楚 choose 的用法,那麻煩你去查VB的函數解釋,就會知道我為什麼這樣講了...

    參考資料: 修改北上的寫法...
  • 2 0 年前

    金額小於651就會算不出來喔

    全部變 1 1 1 1 ..

  • 匿名使用者
    2 0 年前

    Private Sub Command1_Click()

    s = InputBox("輸入")

    For i = 1 To 4

    c = 0

    j = Choose(i, 500, 100, 50, 1)

    Do While s >= j And s <> 0

    s = s - j

    c = c + 1

    Loop

    Print c & "個" & j & Space(2);

    Next

    End Sub

    改過了有問題在問吧

    參考資料: 自己
還有問題?馬上發問,尋求解答。