注意,我的比1、2、3樓的都簡單,還是pascal
var
n,k,p,i,j:integer;
begin
readln(n);
k:=ndiv2;//初始空格數
p:=1;//初始列印字數
fori:=1to(ndiv2)do//先做前一半行的列印
forj:=1tokdowrite("");//輸出空格
forj:=1topdowrite("*");//輸出星號
writeln;//輸出回車
dec(k);inc(p,2);//相當於k:=k-1;p:=p+2;
//因為每增加一行,空格減少一個,星號也增加兩個
end;
fori:=1tondowrite("*");//輸出中間的星號
//因為列印是對稱的,所以不用初始化k,p
fori:=1to(ndiv2)do//再做後一半行的列印
inc(k);dec(p,2);//相當於k:=k+1;p:=p-2;
//因為每增加一行,空格增加少一個,星號也減少兩個
end.
注意,我的比1、2、3樓的都簡單,還是pascal
var
n,k,p,i,j:integer;
begin
readln(n);
k:=ndiv2;//初始空格數
p:=1;//初始列印字數
fori:=1to(ndiv2)do//先做前一半行的列印
begin
forj:=1tokdowrite("");//輸出空格
forj:=1topdowrite("*");//輸出星號
writeln;//輸出回車
dec(k);inc(p,2);//相當於k:=k-1;p:=p+2;
//因為每增加一行,空格減少一個,星號也增加兩個
end;
fori:=1tondowrite("*");//輸出中間的星號
writeln;//輸出回車
//因為列印是對稱的,所以不用初始化k,p
fori:=1to(ndiv2)do//再做後一半行的列印
begin
forj:=1tokdowrite("");//輸出空格
forj:=1topdowrite("*");//輸出星號
writeln;//輸出回車
inc(k);dec(p,2);//相當於k:=k+1;p:=p-2;
//因為每增加一行,空格增加少一個,星號也減少兩個
end;
end.