回 帖 发 新 帖 刷新版面

主题:各位大侠,急救呀!

编程画图(用循环语句控制)
    a
   bbb
  ccccc
ddddddd
  ccccc
   bbb
    a
 怎么实现呀[em18]

回复列表 (共7个回复)

沙发

哪位高手指点一下,图显示的有问题,字母是一中间线为准,两边上下字母对齐的!

板凳

哎!这道题目我是第n次看到求救。几句就可以搞定。给你程序,你的老师要是问你是怎么算出来的,你就跟他说是从BBS上抄下来的。呵呵!(^_^)
告诉你怎么实现:

要打7行;
每行先打空格;
再打字母;
换行;

完了!




Const Line = 7;
      Mid = Line div 2 + 1;
Var
  c : Char;
  i,j : Integer;
Begin
   for i:=1 to Line do
   Begin
     for j:=1 to abs(i-Mid) do Write(' ');
     c:=chr(ord('a')+i-1-(i div Mid)*(i mod Mid)*2);
     for j:=1 to 2*i-1-(i div Mid)*(i mod Mid)*4 do Write(c);
     Writeln;
   End;
End.

3 楼

按照你的说法写的
var j,k,i:integer;
begin

for i:=1 to 4 do
begin
for k:=1 to 4-i do
write(' ');
for k:=1 to 2*i-1 do
begin
write(chr(96+i));
end;
writeln;
end;
for i:=1 to 4-1 do
begin
for k:=1 to i do
write(' ');
for k:=1 to (4-1)*2-(2*i-1) do
write(chr(96+4-i));
writeln;
end;
end.
进一步拓展 我们可以随意输入数字
var j,k,i:integer;
begin
readln(j);{MAX LENGTH}
for i:=1 to j do
begin
for k:=1 to j-i do
write(' ');
for k:=1 to 2*i-1 do
begin
write(chr(96+i));
end;
writeln;
end;
for i:=1 to j-1 do
begin
for k:=1 to i do
write(' ');
for k:=1 to (j-1)*2-(2*i-1) do
write(chr(96+j-i));
writeln;
end;
end.
给分吧
我要纷纷

4 楼

var
  i,j:integer;
begin
  for i:=-3 to 3 do
    begin
      for j:=1 to abs(i) do write(' ');
      for j:=1 to 7-abs(i*2) do write(chr(100-abs(i)));
      writeln;
    end;
end.

这类的问题见太多了会烦的……呵呵
2楼的麻烦了点。

var
  i,j,n:integer;
begin
  write('n=');readln(n);
  for i:=-n to n do
    begin
      for j:=1 to abs(i) do write(' ');
      for j:=1 to 2*n+1-abs(i*2) do write(chr(97+n-abs(i)));
      writeln;
    end;
end.

这个是扩展后的……只是改了一些东西而已……楼主的例子是当n=3时的结果。

5 楼

绝对值阿 我知道

6 楼

但是你的程序让我感觉不到你知道

7 楼

对不起阿
不是我做的

我来回复

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