难做的vb 急急急!!!

来源:百度知道 编辑:UC知道 时间:2024/06/03 14:32:45
输入一个整数n(n大于0,小于10)后,显示如图图案(最好用多个for next)
; 1
: 222
; 33333
; 4444444
;555555555
; 6666666
; 77777
; 888
; 9
;
;
;
;
不好意思,我这个是数字组成的菱形,问题里打不出,不好意思。老大,再帮我想想啊,谢谢 我哭死,为什么还没有一个正确答案啊,VB高手在哪?

貌似行数必须为基数吧
Private Sub Form_Click()
dim upvalue as interger
up=val(inputbox"请输入一个奇数值" )
dim half as interger
half=(up+1)/2 '如题
dim i as interger
dim j as interger
dim k as interger
for i=1 to up
for k=1 to abs(half-i)
print " "
next k
for j=1 to 2*(half-abs(half-i))-1
print i
next j
next i
End Sub

没有验证过,机器没vb
但我觉得是对的,看规律:
行数就是输入的数up,
最长的那行就是第half=(up+1)/2行
每行的空格数为:abs(half-i)
最关键的是每行打印的数字的个数,可以发现第一行1个,第二行3个,到第half行就是2*half-1个,
但是过了第half行,数字个数减少,每增加1行,数字个数减少2,所以其实每行的数字个数为:
2*(half-abs(half-i))-1

Private Sub Form_Click()
For i = 1 To 5: Print String(i * 2 - 1, Chr(48 + i)): Next
For i = 4 To 1 Step -1: Print String(i * 2 - 1, Chr(58 - i)): Next
End Sub
没注意看,下面是加n的,n的值可以从其它控件输入
Private Sub Form_Click()
n = 3
For i = 1 To n: Print String(i * 2 - 1, Chr(48 + i)): Next
For i = 1 To n - 1: P