Private Sub Form_Click()
Dim SymbolCount As Integer '输出符号的最大个数,即最底层字母或符号的个数
Dim SpaceCount As Integer '左边的空格数
Dim OutPutSpace As String '保存要输出的左边的空格
Dim OutPutSymbol As String '保存要输出的字符和字符间的空格
Dim i, j As Integer
SymbolCount = 5 '设定金字塔的高度为5层,最底层输出的符号也刚好是5个
SpaceCount = (SymbolCount * 2 - 1) / 2 '左边空格数的初始值等于底层输出字符+字符间空格的个数的一半
OutPutSymbol = "*"
OutPutSpace = ""
For i = 1 To SpaceCount '计算第一行左边所需要输出的空格数目
OutPutSpace = OutPutSpace & " " '累加空格数目
Next i
For i = 1 To SymbolCount
Print OutPutSpace & OutPutSymbol '输出计算后得出的这行的结果
If SpaceCount > 0 Then
SpaceCount = SpaceCount - 1
End If
OutPutSpace = Left(OutPutSpace, SpaceCount) '左边空格,下一行比上一行少一个空格
OutPutSymbol = OutPutSymbol & " *" '下一行比上一行多一个空格和一个星号
Next i
End Sub
一楼的方法可以,不过貌似太死板了!!如果这是一道vb题的话,哪么起题意是要你用循环编写出来。
二楼的accii码也可以用,用到循环中,如果字母是按顺序abc出的话,哪么可以利用ascii的差值安排空格的数量。
代码就不写了。
这么矮的金子塔用一楼的方法就够简洁了
试了上面的,不行,不合题意,改了下,不要见意.按照老板要求,我改了一下
Private Sub Command1_Click()
Cls
b = Val(Text1.Text)
For i = -b + 1 To b - 1
Print Tab(Abs(i) + 1)
Print String(((b - Abs(i)) * 2 - 1), Chr(96 + Abs(b) - Abs(i)))
Next i
End Sub
Private Sub Form_Load()
Text1.Text = ""
End Sub
帮你改了下,这下要给分吧。这么简单!浪费我不少时间!晕
Dim j As Integer
Dim n As Integer
Private Sub Command1_Click()
Form1.Cls
n = Val(Text1.Text)
If n <= 0 Or n >= 10 Then
MsgBox "输入范围错误,请输入0—10之间的整数", , "输入错误"
Text1.Text = ""
End If
For i = 1 To n
Print Tab(10 - i)
For j = 1 To i * 2 - 1
Print Chr(96 + i)
Next j
Next i
For i = n - 1 To 1 Step -1
Print Tab(10 - i)
For j = 2 * i - 1 To 1 Step -1
Print Chr(96 + i)
Next j
Next i
Print Chr(96)
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)