回 帖 发 新 帖 刷新版面

主题:烦人的字母塔

编写程序使之输出以下内容;
                         a
                        aba
                       abcba
                     …………
abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba
请高手用for循环语句给出答案,并在关键处加上注释。谢谢!
解答出来+30分。!

回复列表 (共3个回复)

沙发

VAR
   i, j, prevspc, asccode: INTEGER;
BEGIN
   prevspc := 25;                        'prevspc是当前行前面空格的总数
   asccode := 97;                        'asccode是当前要打印的字母的ASCII码
   FOR i:=1 TO 26 DO BEGIN
       FOR j:=1 TO prevspc DO WRITE(' ');  '输出prevspc个空格
       FOR j:=1 TO i DO WRITE(CHR(asccode - 1 + j));  '输出该行的前半部分
       asccode := asccode + i - 2; 
       FOR j:=asccode DOWNTO 97 DO WRITE(CHR(j));     '输出该行的后半部分
       WRITELN;                                       '换行
       prevspc := prevspc - 1;                        '空格数减1
       asccode := 97;
   END;
   READLN;
END.

板凳

有点象杨挥三角形

3 楼

Procedure Print;
Var i,j:char;
Begin
  for i:='a' to 'z' do begin
    /这里是打空格的语句,先省略了/
    for j:='a' to i do write(j);
    for j:=i to 'a' do write(j);
  end;
End;
总之可以直接使用字母而不是ASC码

我来回复

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