回 帖 发 新 帖 刷新版面

主题:[讨论]空心三角形!!!

*
              ***
             *****
            *******
           *       *
          ***     ***
         *****   *****
        ******* *******
       *       *       *
      ***     ***     ***
     *****   *****   *****
    ******* ******* *******
   *      *      *      *
  ***    ***    ***    ***
 *****  *****  *****  ***** 
****************************
n=4时
怎么编呀??????????!!!!!!!
[em18]

回复列表 (共8个回复)

沙发

最后一行好像少了一个三角形!

板凳

CLS
INPUT N
FOR S = 1 TO N
  FOR I = 1 TO N
    FOR K = 1 TO S
      PRINT TAB((((40 + N) - (S * N)) - I) + ((K - 1) * (N * 2)));
      FOR J = 1 TO 2 * I - 1
        PRINT "*";
      NEXT J
    NEXT K
    PRINT
  NEXT I
NEXT S
END


3 楼

CLS
INPUT N
FOR I = N TO 1 STEP -1
FOR J = N TO 1 STEP -1
PRINT TAB((I - 1) * N + J);
FOR K = 1 TO N + 1 - I
PRINT STRING$((N - J) * 2 + 1, "*");
PRINT SPC(J * 2 - 1);
NEXT K: PRINT
NEXT J, I
END

4 楼

能不能给个解释,一个比一个复杂,看不懂!

5 楼

'本人学编了一个小程序,代码真的很短呀,但不知道是不是最简的。
CLS
FOR i = 4 TO 1 STEP -1                       '从左到右,斜着看,共分成4批三角形
 kh = (4 - i) * 4 + 1: kl = 40 + (4 - i) * 4 '每批三角形的起点
 LOCATE kh, kl                               '调用locate函数,光标定位
 FOR j = 1 TO i                              '确定每批三角形的三角形数
   FOR k = 1 TO 4                            'k、p两重循环完成打印一个完整三角形的目的
      kh = kh + 1: kl = kl - 1: LOCATE kh, kl  '每打印一行,行递增、列递减
      FOR P = 1 TO 2 * k - 1: PRINT "*"; : NEXT P: PRINT
   NEXT k: INPUT kkk           '此处故意加一个无用的输入等待,目的是让测试者用F8单步执行,看出我程序的运行过程
  NEXT j
NEXT i
END

6 楼

INPUT n
CLS
FOR i = 1 TO n * n
    s0 = i MOD n: IF s0 = 0 THEN s0 = n
    IF s0 = n THEN s00 = i / n - 1 ELSE s00 = i \ n
    s1$ = STRING$((s0) * 2 - 1, "*")
    s2$ = SPACE$((n - s0) * 2 + 1)
    PRINT TAB(n * n + 1 - i);
    PRINT s1$;
    FOR j = 1 TO s00: PRINT s2$; s1$; : NEXT j: PRINT
NEXT i
END

7 楼

给你们的建议:不要为考试而学习.
学习的目的是看见问题,分析问题,解决问题,从而提升个人的学习能力.

8 楼

看来MOZ更强,MOTO完整版更牛,他们都有值得我学习的地方。

我来回复

您尚未登录,请登录后再回复。点此登录或注册