印星星的问题

Home Home
引用 | 编辑 ccna_not
2008-06-07 23:06
楼主
推文 x0
1.
Sub Main()
Tmp = ""
For i = 1 To 10
Tmp = Tmp & String(i, "*")
Tmp = Tmp & vbCrLf
Next
MsgBox Tmp
E ..

访客只能看到部份内容,免费 加入会员



献花 x0
引用 | 编辑 wellson123
2008-06-08 00:58
1楼
  
1.
Sub Main()
Tmp = ""
For i = 1 To 10

  Tmp = Tmp & String( ( 10 - i ) / 2, " " ) & String( i, "*" )
  Tmp = Tmp & vbCrLf
Next
MsgBox Tmp
End Sub

2.
Sub Main()
Tmp = ""
For I = 1 To 10
  For J = 1 To I
      Tmp = Tmp & String( J, " " ) & String( J, "*" )
  Next
  Tmp = Tmp & vbCrLf
Next
MsgBox Tmp
End Sub


试试吧表情

献花 x0
引用 | 编辑 ccna_not
2008-06-08 02:00
2楼
  
下面是引用wellson123于2008-06-08 00:58发表的 :
1.
Sub Main()
Tmp = ""
For i = 1 To 10

  Tmp = Tmp & String( ( 10 - i ) / 2, " " ) & String( i, "*" )
.......

wellson123
1.第一个会跑成


2. 第二个会跑成


虽然不一样
但还是谢谢你
我再想想~

献花 x0
引用 | 编辑 三仙
2008-06-08 03:13
3楼
  

图 1.
运算结果

这是第一题的,参考看看
--------------------------------
Tmp = ""
For i = 1 To 10
Tmp = Tmp & Space(10 - i) & String(i, "*") & vbCrLf
Next
MsgBox Tmp
--------------------------------
虽然不知道为什么要用二个 For
但第二层的语意是错的(跟语法无关)
所以会多跑第一层的倍数
控制第二层只做一次就好了


[ 此文章被三仙在2008-06-08 05:27重新编辑 ]

补运算结果图档

献花 x0
引用 | 编辑 andyz
2008-06-08 10:39
4楼
  
不会用VB
用C++写这样
#include<iostream>
using namespace std;
                                                   
int main()
{
     for(int i=0;i<=10;i++)
     {
           for(int k=9;k>=i;k--) cout<<" ";
           for(int j=0;j<i;j++)
           {
                 
                 cout<<"* ";
           }
           cout<<endl;
     }
     return 0;
}



献花 x0
引用 | 编辑 wellson123
2008-06-13 00:46
5楼
  
'Option Explicit

Private Sub Form_Load()

'问题一
Tmp = ""
For i = 1 To 10
  Tmp = Tmp & String(10 - i, " ") & String(i, "*")
  Tmp = Tmp & vbCrLf
Next
MsgBox Tmp

'问题二
Tmp = ""
For i = 1 To 10
  Tmp = Tmp & String(10 - i, " ")
  For j = 1 To i
    Tmp = Tmp & "*"
  Next
  Tmp = Tmp & vbCrLf
Next
MsgBox Tmp

End Sub

ps. 我一直把一个空白占的空间当成和一个星号一样, 结果就错了.

献花 x0
引用 | 编辑 koinouta
2008-06-17 03:26
6楼
  
复制程式
#include <stdio.h>
#include <stdlib.h>

void main()
{
       int i,j,n,m;
       scanf("%d",&n);
       
       m=(((n%2)==0) ? n/2-1:n/2);
       for (i=m;i>=-m;i--)       {
              for (j=m;j>=-m;j--)       {
                     printf("%s",(abs(i)+abs(j)<=m) ? "*":" " );
              }
              printf("\n");
       }

       system("pause");
}

此为我自己写的菱形程式(C)
VB太久没写...发现完全看不懂=.=
供你参考

第一个for
将i>=-m的-m修改为0即可

...若是修改第二个for则变成.........自己试吧...

另外
(abs(i)+abs(j)<=m) ? "*":" "
其中<=可以修改成>=或==或<或>...至于会产生什么嘛~...自己去试吧~
我懒得截图....=.=

献花 x0
引用 | 编辑 sss40914
2008-11-04 14:13
7楼
  
'vb2005

Dim x, y As Integer
    For x = 1 To 5
        For y = 1 To x
          Label1.Text += "*"
        Next
        Label1.Text += vbNewLine
    Next
  End Sub

献花 x0
引用 | 编辑 枫叶物语
2009-11-04 19:25
8楼
  
Label1.Text = ""
    For x = 1 To 5
        Label1.Text = Label1.Text & Space(5 - x)
        For y = 1 To x
          Label1.Text = Label1.Text & "*"
        Next y
        Label1.Text = Label1.Text & vbNewLine
    Next x
  End Sub

献花 x0
引用 | 编辑 abbabc
2009-11-15 00:13
9楼
  
太棒了
这正好是我们学校老师出给我们的作业
本来还在想说要哪里问人的说
想不到这里刚好有我要的
谢谢大大分享

献花 x0