编程输出下列图形,行数从键盘读入 当n=5时, * *** ***** *** *

图形*************是Pascal语言... 图形*
***
*****
***
* 是Pascal语言
展开
 我来答
林毅璇3j
2010-10-16 · TA获得超过160个赞
知道答主
回答量:61
采纳率:0%
帮助的人:42.3万
展开全部
注意,我的比1、2、3楼的都简单,还是pascal

var
n,k,p,i,j:integer;
begin
readln(n);
k:=n div 2; //初始空格数
p:=1; //初始打印字数
for i:=1 to (n div 2) do //先做前一半行的打印
begin
for j:=1 to k do write(' '); //输出空格
for j:=1 to p do write('*'); //输出星号
writeln; //输出回车
dec(k); inc(p,2); //相当于k:=k-1; p:=p+2;
//因为每增加一行,空格减少一个,星号也增加两个
end;

for i:=1 to n do write('*'); //输出中间的星号
writeln; //输出回车

//因为打印是对称的,所以不用初始化k,p
for i:=1 to (n div 2) do //再做后一半行的打印
begin
for j:=1 to k do write(' '); //输出空格
for j:=1 to p do write('*'); //输出星号
writeln; //输出回车
inc(k); dec(p,2); //相当于k:=k+1; p:=p-2;
//因为每增加一行,空格增加少一个,星号也减少两个
end;
end.
sulei7654321
2010-10-10
知道答主
回答量:13
采纳率:0%
帮助的人:7万
展开全部
c语言吗?
以前刚学的时候写的
#include<stdio.h>
void main()
{int i,k,n,t;
printf("此程序用于输出N行星星,并且为◇状\n请输入你需要的行数:");
scanf("%d",&n);
if(n>=0){
for(i=0;i<n;i++){
for(t=0;t<32-i;t++)
printf(" ");
for(k=0;k<2*i-1;k++)
printf("*");
printf("\n");
}
for(i=0;i<n;i++){
for(t=0;t<32-n+i;t++)
printf(" ");
for(k=0;k<=(2*n-1)-(2*i+1);k++)
printf("*");
printf("\n");
}
}else
printf("input error!\n");
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丛龙强
2010-10-11 · TA获得超过173个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:174万
展开全部
#include <stdio.h>

int main(void)
{
int i, j, m;

printf("please input a number: ");
scanf("%d", &m);
for(i=0; i<(m+1)/2; i++)
{
for(j=0; j<(m+1)/2-1-i; j++)
printf(" ");
for(j=0; j<2*i+1; j++)
printf("* ");
printf("\n");
}
for(i=0;i <(m+1)/2-1; i++)
{
for(j=0; j<i+1; j++)
printf(" ");
for(j=0; j<((m+1)/2-1-i)*2-1; j++)
printf("* ");
printf("\n");
}

return 0;
}
如果你用的是C语言,那么这段代码就可以了,非常的简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虹why
2010-10-10 · TA获得超过2.8万个赞
知道小有建树答主
回答量:403
采纳率:100%
帮助的人:154万
展开全部
我的是pascal语言:
program project1;
var n,m,i,j:longint;
begin
read(n);
m:=n div 2;
for i:=1 to m do begin
write('*':m+2-i);
j:=(i-1)*2;
if j<>0 then for j:=1 to j do write('*');
writeln;
end;
for j:=1 to n do write('*');
writeln;
for i:=m downto 1 do begin
write('*':m+2-i);
j:=(i-1)*2;
if j<>0 then for j:=1 to j do write('*');
writeln;
end;
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式