
這樣子如何寫?謝謝
uj5u.com熱心網友回復:
print 9print 888
……
一共9行,直接用回圈寫,可以回圈9次,從9回圈到1
設行號為i,那么需要print (10-i)這個數字,2 * i -1次。
既然每次回圈里要列印多個數字,里層也可以用回圈來寫,回圈次數就是 2 * i -1
for i = 9 to 1 step -1 (外層回圈,一次回圈列印一行)
另一個需要計算的是起始位置(假定整個三角形的起始位置距離左邊距離是10個字符),第 i 行的起始位置距離左邊距 10 + 總行數 -i (這個題目里是9行,所以第 i 行起始位置距離左邊 19 -i )
print tab(19-i);
for j = 1 to 2 * i -1 (內層回圈,一次回圈列印一個數字)
print i;
當然內層也可以不用回圈,直接用 string函式來輸出連續的 2 * i - 1個數字。
uj5u.com熱心網友回復:
可以寫下代碼嗎?謝謝了
uj5u.com熱心網友回復:
呵呵
uj5u.com熱心網友回復:


給你一段精簡的代碼。你要自己敲。
如果你老師認真批改作業,這個代碼應該會引起你老師的興趣,你要考慮怎么向你的老師解釋這段代碼的原理,以表明這是你自己做的。
uj5u.com熱心網友回復:
樓上的方法挺巧妙的。
不過我覺得回圈體內的那句改為這個更好:
Me.Print Space$(20 - i) & String$(i + i - 1, 58 - i)
uj5u.com熱心網友回復:
樓上的方法挺巧妙的。
不過我覺得回圈體內的那句改為這個更好:
Me.Print Space$(20 - i) & String$(i + i - 1, 58 - i)
來來來,再看看還有沒有更短的。
要不咱FQ出去試試280字挑戰?
https://xw.qq.com/cmsid/20200326A0BRT300
uj5u.com熱心網友回復:
樓上的方法挺巧妙的。
不過我覺得回圈體內的那句改為這個更好:
Me.Print Space$(20 - i) & String$(i + i - 1, 58 - i)
不用字串,用數值方案
uj5u.com熱心網友回復:
我主要考慮的不是代碼長短問題,而是運行效率。
uj5u.com熱心網友回復:
我主要考慮的不是代碼長短問題,而是運行效率。
所以我給了一個代碼更長的數值計算而非字串拼接方案。
uj5u.com熱心網友回復:
直接定義一個長字串,用,拼好的。然后直接拆成陣列,回圈列印出來。
dim s() as string ,i as long
const str as string =" 9, 888, 77777。。。。。"
s=split(str,",")
for i=0 to 8
print str(i)
next
uj5u.com熱心網友回復:
Dim aa, i, jaa = ""
For i = 9 To 1 Step -1
For j = 1 To 20
If j <= i Or j >= 20 - i Then
aa = aa & " "
Else
aa = aa & i
End If
Next
aa = aa & vbCrLf
Next
Print aa
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/11930.html
標籤:VB基礎類
