经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
C语言实现循环打印星号图形再镂空
来源:jb51  时间:2022/11/17 8:48:35  对本文有异议

C语言 循环打印星号图形再镂空

镂空的原理

判断什么时候打印星号,什么时候打印空格

如果把这个图形镂空 成下面这个图形

  1. int i,j;
  2. //外层控制行数和换行
  3. for(i=0;i<5;i++)
  4. {
  5. //内存循环控制列数和星数量
  6. for(j=0;j<=3-i;j++)
  7. {
  8. printf(" ");
  9. }
  10. for(j=0;j<=i*2;j++)
  11. {
  12. if(i==0 || i==4 || j ==0 || j == 2*i) //第一行和最后一行不要镂空,然后就是中间的两边,分别是j=0和j取最大值的时候
  13. printf("*");
  14. else
  15. printf(" ");0
  16. }
  17. printf("\n");
  18. }
  19. return 0;

第二种:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5. int i,j;
  6. for(i=0;i<9;i++)
  7. {
  8. for(j=0;j<9;j++)
  9. {
  10. if(i == 0 || i == 8 || j == 0 || j == 8)
  11. {
  12. printf("*");
  13. }
  14. else
  15. printf(" ");
  16. }
  17. printf("\n");
  18. }

第三种效果图:

  1. int main()
  2. {
  3. //上半部分
  4. int i,j;
  5. for(i=0;i<3;i++)
  6. {
  7. for(j=0;j<2-i;j++)
  8. {
  9. printf(" ");
  10. }
  11. for(j=0;j<=2+2*i;j++)
  12. {
  13. if(i == 0 || j == 0 || j == 2+2*i)
  14. printf("*");
  15. else
  16. printf(" ");
  17. }
  18. printf("\n");
  19. }
  20. //中间部分
  21. for(i=0;i<3;i++)
  22. {
  23. for(j=0;j<7;j++)
  24. {
  25. if(j == 0 ||j == 6)
  26. printf("*");
  27. else
  28. printf(" ");
  29. }
  30. printf("\n");
  31. }
  32. //下半部分
  33. for(i=0;i<3;i++)
  34. {
  35. for(j=0;j<i;j++)
  36. {
  37. printf(" ");
  38. }
  39. for(j=0;j<=6-2*i;j++)
  40. {
  41. if(i == 2 || j == 0 || j ==6-2*i )
  42. printf("*");
  43. else
  44. printf(" ");
  45. }
  46. printf("\n");
  47. }
  48. return 0;
  49. }

第四种:

  1. int main()
  2. {
  3. int i,j;
  4. //上半部分
  5. for(i=0;i<3;i++)
  6. {
  7. for(j=0;j<2-i;j++)
  8. {
  9. printf(" ");
  10. }
  11. for(j=0;j<=2*i;j++)
  12. {
  13. printf("*");
  14. }
  15. printf("\n");
  16. }
  17. //下半部分
  18. for(i=0;i<7;i++)
  19. {
  20. for(j=0;j<5;j++)
  21. {
  22. if(j == 2)
  23. printf("*");
  24. else
  25. printf(" ");
  26. }
  27. printf("\n");
  28. }
  29. return 0;

C语言 打印菱形星号“*”图案

题目

打印菱形星号“*”图案。输入一个正整数n(n为奇数),打印一个高度为n的“*”菱形图案。试编写相应程序。

程序简易流程图如下:

  1. #include<stdio.h> /*打印菱形图案*/
  2. int main (void)
  3. {
  4. int n,j,i; /*i为行数,j为每行中的项数*/
  5. printf("(n为奇数)输入图案高度n:\n");
  6. scanf("%d",&n);
  7. if (n<=0||n%2==0) /*判断n输入正误*/
  8. printf("输入错误!");
  9. else
  10. {
  11. for(i=1;i<=n/2+1;i++) /*打印上三角,(包括中间行)*/
  12. {
  13. for(j=1;j<=n/2+i;j++)
  14. {
  15. if(j>=n/2-i+2)
  16. printf(" *");
  17. else
  18. printf(" ");
  19. }
  20. printf("\n");
  21. }
  22. for(i=n/2;i>=1;i--) /*打印下三角,(不包括中间行)*/
  23. { /*将i改为倒序,这样就不必再次考虑每行中项的打印,下个for循环可以直接复制上三角部分*/
  24. for(j=1;j<=n/2+i;j++) /*这个for循环与上三角一致 */
  25. if(j>=n/2-i+2)
  26. printf(" *");
  27. else
  28. printf(" ");
  29. printf("\n");
  30. }
  31. }
  32. return 0;
  33. }

运行结果:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号