主题:烦人的字母塔
lierenpascal
[专家分:0] 发布于 2007-06-27 12:15:00
编写程序使之输出以下内容;
a
aba
abcba
…………
abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba
请高手用for循环语句给出答案,并在关键处加上注释。谢谢!
解答出来+30分。!
回复列表 (共3个回复)
沙发
Matodied [专家分:7560] 发布于 2007-06-27 14:00:00
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.
板凳
万里长城 [专家分:340] 发布于 2007-06-29 21:04:00
有点象杨挥三角形
3 楼
dorremon1992 [专家分:870] 发布于 2007-07-04 17:03:00
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码
我来回复