Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20929
  • 博文数量: 7
  • 博客积分: 260
  • 博客等级: 入伍新兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-01 14:57
文章分类

全部博文(7)

文章存档

2012年(7)

最近访客

分类: C/C++

2012-05-05 13:34:08

将方块分成四部分:第一行,第二至第n/2+1行(就是方片中上部),第n/2+2至第n-1行(方片下部),最后一行。
第一行和最后一行:打印n个*即可。
第二行至N/2+1行与第n/2+2至第n-1行算法基本相同。本题主要是考这部分
分行处理,一行也分三部分:1左边*,2#,和3右边*。
1:*数量每行少打一个,算出公式应打:n/2+2-i(我以j为公式变量是n/2-j/2)就不细说了j是星号数量)...
2:再打印j个星号,j初值为1(n为积数太好了)j随每次循环+(-)2
3:同1
 

点击(此处)折叠或打开

  1. #include"stdio.h"
  2. int main()
  3. {
  4. int n;
  5. int i,j,k;
  6. scanf("%d",&n);
  7. for(i=1;i<=n;i++)
  8. putchar('*');
  9. printf("\n");
  10. for(i=2,j=1;i<=n/2+1;i++,j=j+2)
  11. {
  12. for(k=1;k<=n/2-j/2;k++)
  13. putchar('*');
  14. for(k=1;k<=j;k++)
  15. putchar('#');
  16. for(k=1;k<=n/2-j/2;k++)
  17. putchar('*');
  18. putchar('\n');
  19. }
  20. for(i=n/2+2,j=j-4;i
  21. {
  22. for(k=1;k<=n/2-j/2;k++)
  23. putchar('*');
  24. for(k=1;k<=j;k++)
  25. putchar('#');
  26. for(k=1;k<=n/2-j/2;k++)
  27. putchar('*');
  28. putchar('\n');
  29. }
  30. if(n>1)
  31. for(i=1;i<=n;i++)
  32. putchar('*');
  33. return 0;
  34. }

阅读(756) | 评论(0) | 转发(0) |
0

上一篇:我刚开通了博客

下一篇:1000 孔融让梨

给主人留下些什么吧!~~