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

設計一個程式,可讓使用者輸入二個整數數字並進行乘法運算,但不能使用*的運算子(hint:使用Do Loop廻圈)

不知道怎樣可以不使用*寫= =|||

2006-03-23 17:03:06 · 3 個解答 · 發問者 ? 3 in 電腦與網際網路 程式設計

謝大家

2006-03-27 16:42:28 · update #1

3 個解答

其實你的題目有個關鍵字,就是『整數數字』,而整數數字的乘法其實可以看成『連加法』,也就是說,其實他就是要你用連加法來進行乘法運算,方法不只一種,但是如果按照他的提示,使用 Do Loop 迴圈也是可以。Dim A As Integer, B As Integer, C As Integer, Ans As Long,'接下來不管你用什麼方法,反正設定兩個整數到 A B 裡面進行運算If A > 0 Then '先把 A 變成正整數C = 1 '並用 C 紀錄 A 的正負號ElseA = -AC = -1End IfAns = 0 '初始化你要的答案Do While A > 0Ans = Ans + B '這裡進行連加法A = A - 1 '這裡控制加法次數LoopIf C < 0 Then Ans = -Ans '這裡確定要不要幫答案加上負號Debug.Print Ans '這邊印出你的答案,當然不一定要這樣印啦~~

2006-03-23 23:07:21 補充:
寫完答案才看到drgo大大的回答,不過drgo大大沒有考慮到整數包含了負整數,如果沒有先處理負整數的問題,那麼當出現負整數的乘法,drgo大大的答案就會有問題囉~~

2006-03-23 18:04:06 · answer #1 · answered by Rody 5 · 0 0

Private Sub Command1_Click()Dim N%, M%, T#, F$On Error Resume Next'N跟M須為介於-32,768 到 32,767之整數N = Int(Val(InputBox("請輸入乘式")))M = Int(Val(InputBox("請輸入被乘式")))'輸入錯誤就離開If Err Then Exit Sub'記錄正負If N < 0 Xor M < 0 Then F = "-"'輸出運算式Print N; " * "; M; " = ";'消除負號N = Abs(N): M = Abs(M)'累加Do Until M <= 0   T = T + N   M = M - 1Loop'輸出結果T = F & TPrint TEnd Sub'另一種方式用除法(題目沒規定不能用/的運算子XD)'Print N; " * "; M; " = "; N / (1 / M)

2006-03-23 23:16:26 補充:
怎麼剛寫完就有人已po上來了,佩服佩服Orz

2006-03-23 18:14:03 · answer #2 · answered by W.J.S. 7 · 0 0

dim a as integer,b as integer,n as integer,sum as integer
n=0
do while n sum=sum+a
n=n+1
loop
print sum

2006-03-23 22:57:18 補充:
a與b為輸入之整數,SUM為答案。

2006-04-01 18:18:50 補充:
能考慮到正負號...真是細心@@a
不過這題重點是讓學生學會迴圈的用法,簡單的程式能讓發問者容易理解它。

2006-03-23 17:56:24 · answer #3 · answered by ? 2 · 0 0

fedest.com, questions and answers