vb的杨辉三角形,谁可以帮我看下呀

题目:输入整数n,分别按直角三角形和等腰三角形显示n行的杨辉三角形.最多输入12行.1.定义一个二维数组,上三角各元素均为0,下三角的规律为:第一列及对角线正好等于它上面... 题目:输入整数n,分别按直角三角形和等腰三角形显示n行的杨辉三角形.最多输入12行.
1.定义一个二维数组,上三角各元素均为0,下三角的规律为:第一列及对角线正好等于它上面一行中同列和前一列的两个元素之和,即A(i,j)=A(i-1,j)+A(i-1,j-1)
2.利用两重循环再窗体上显示下三角元素.
3.等腰三角形利用Tab函数或currrntX属性确定每行的起始位置
我做了下,可是我的杨辉等腰三角形每点一下就变一次型,直角三角形对齐也不公整,谁可以帮我改下呀,非常感谢!
Option Explicit
Dim a(12, 12) As Long
Dim b(12) As String
Dim i, j, n, m, c%
Private Sub Command1_Click()
Cls
n = Val(Text1.Text)
a(0, 0) = 1
For i = 1 To n
For j = 1 To n
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
If a(i, j) <> 0 Then
b(j) = b(j - 1) & " " & a(i, j)
End If
Next
Print b(i)
Next
End Sub
Private Sub Command2_Click()
Cls
n = Val(Text1.Text)
For i = 0 To n - 1
a(i, 0) = 1
Next
Print Tab(n + 20); a(0, 0)
For i = 1 To n - 1
m = 0
c = c + 2
Print Tab(n + 20 - c); a(i, 0);
For j = 1 To i
m = m + 5
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
Print Tab(n + 20 - c + m); a(i, j);
Next j
Print
Next i
End Sub
Private Sub Command3_Click()
Cls
End Sub
Private Sub Command4_Click()
End
End Sub

Private Sub Text1_Change()
n = Int(Val(Text1.Text))
If n = 0 Then MsgBox "请输入大于0小于12的行数!": Exit Sub
If n > 12 Then MsgBox "请输入大于0小于12的行数!": Exit Sub
End Sub
还有一个小问题,当我单击command2,3,4后在单击command1直角杨辉三角形第一列就不见了
展开
 我来答
Higer爱Susan
2010-04-19 · TA获得超过918个赞
知道小有建树答主
回答量:508
采纳率:0%
帮助的人:459万
展开全部
c = 0 '添加上这一句,你忘记对c进行初始化了,因为每次你点了之后c的值就会发生变化
对于对齐,那是vb的问题,你如果将这些数字都转换为string的话 就会工整了
Private Sub Command2_Click()
Cls
n = Val(Text1.Text)
For i = 0 To n - 1
a(i, 0) = 1
Next
Print Tab(n + 16); a(0, 0)

c = 0 '添加上这一句
For i = 1 To n - 1
m = 0
c = c + 2
Print Tab(n + 16 - c); a(i, 0);
For j = 1 To i
m = m + 5
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
Print Tab(n + 16 - c + m); a(i, j);
Next j
Print
Next i
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式