如何用VB程序输出一个字母金字塔?仅用for循环语句

如何用VB程序输出一个字母金字塔?仅用for循环语句,第1张

Option Explicit

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

Print Chr(96)

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12140255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存