VB 打印菱形金字塔

PrivateSubForm_Click()Fori=1To9Ifi<6ThenPrintTab(6-i);Forj=1Toi*2-1PrintCStr(i);Nextj... Private Sub Form_Click()
For i = 1 To 9

If i < 6 Then
Print Tab(6 - i);
For j = 1 To i * 2 - 1
Print CStr(i);
Next j
Else
Print Tab(i - 5);
For j = 1 To (-2 * i + 9)
Print CStr(i);
Next j

End If

Next i

End Sub

我这么打有什么错吗?
1
222
33333
4444444
555555555
6666666
77777
888
9
展开
 我来答
Coo_boi
2009-10-27 · TA获得超过1333个赞
知道大有可为答主
回答量:2209
采纳率:50%
帮助的人:250万
展开全部
不懂?给你个地址,也是这种问题,我在那里有详细的代码支持
http://z.baidu.com/question/122566684.html
Private Sub Form_Click()
For i = 1 To 9

If i < 6 Then
Print Tab(6 - i);
For j = 1 To i * 2 - 1
Print CStr(i);
Next j
Else
Print Tab(i - 4);
For j = 1 To 2 * (10 - i) - 1
Print CStr(10 - i);
Next j

End If

Next i

End Sub
改过之后的代码
你看一下就会明白了
你的下半部分,也就是一旦超过5之后的循环代码出现了错误,这是因为你没有观察好递增对于图形输出的制约。自己再看看吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mosesmoses0651
2009-10-27 · TA获得超过2718个赞
知道小有建树答主
回答量:824
采纳率:0%
帮助的人:653万
展开全部
两个地方
一个是 Print Tab(i - 5);这句,当i=6时前面只tab一格,而当i=5时Print Tab(6 - i);也是1格,不合题意,应改为Print Tab(i - 4);

另一个是For j = 1 To (-2 * i + 9) 自己演算一下吧,应改为For j = 1 To (2 * (10 - i) - 1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式