请VB高手们帮忙看看这个程序出什么问题了!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/07 01:06:50
原题目是这样的:输入整数N,显示具有N行的杨辉三角形,要求按正三角形的形式在图片框中显示。

我参考网上高手的程序写出来是这样的:
Option Explicit
Dim s() As Long, i As Integer, j As Integer, n As Integer
Dim x As Integer
Private Sub Command1_Click()
n = InputBox("为了方便观看,请输入一个小于等于15的整数:", "输入行数", 15)
ReDim s(n, n)
Picture1.Cls
For i = 1 To n
For j = 1 To i
If j = 1 Or i = j Then
s(i, j) = 1
Else
s(i, j) = s(i - 1, j - 1) + s(i - 1, j)
End If
Next j
Next i
For i = 1 To n
Picture1.Print Spc(40 - 3 * i);
For j = 1 To i
Picture1.Print s(i, j);
x = Len(CStr(s(i, j)))
If x = 1 Then Print Spc(3);
If x = 2 Then Print Spc(2);
If x = 3 Then Print Spc(1);
Next j
Print
Print
Next i
End Sub

可是这段程序在form中print可以正确输出,在picturebox中就不能按要求输出了,这到底是为什么呀?????哪里出错了呀?????请帮忙改改吧!!!谢谢啦!!!

你的设计基本没错,只是在每个print前加上picture1.print即可。
下面就是修改后的代码:

Option Explicit
Dim s() As Long, i As Integer, j As Integer, n As Integer
Dim x As Integer
Private Sub Command1_Click()
n = InputBox("为了方便观看,请输入一个小于等于15的整数:", "输入行数", 15)
ReDim s(n, n)
Picture1.Cls
For i = 1 To n
For j = 1 To i
If j = 1 Or i = j Then
s(i, j) = 1
Else
s(i, j) = s(i - 1, j - 1) + s(i - 1, j)
End If
Next j
Next i
For i = 1 To n
Picture1.Print Spc(40 - 3 * i);
For j = 1 To i
Picture1.Print s(i, j);
x = Len(CStr(s(i, j)))
If x = 1 Then Picture1.Print Spc(3);
If x = 2 Then Picture1.Print Spc(2);
If x = 3 Then Picture1.Print Spc(1);
Next j
Picture1.Print
Picture1.Print
Next i
End Sub

Option Explicit
Dim s() As Long, i As Integer, j As Integer, n As Integer
Dim x As Integer
Private Sub Command1_Click()
n = InputBox("为了方