• 打印由*组成的菱形


     如图所示,这是我们要用代码所实现的图形。

    那么我们该如何实现这个呢,对于这种题,我们只有静下心来找其中的规律了。

    我们先来看看它的上面部分:

    它是由空格和星号组成的,那么我们是不是可以先打印空格然后再打印星号呢?先打印空格染后再打印星号,之后换行接着打印。

    那么有上面的思想,我们就只用管左边的空格了,先来看看星号的规律是1 3 5 7 9 11 13,所以我们可以用2*i-1来表示。空格则是6 5 4 3 2 1,我们可以用7-i来表示。那么我们接下来就实现我们的上半部分的代码:

    1. int rows = 13;
    2. int i = 0;
    3. int j = 0;
    4. int space = 0;
    5. // 打印上半部分
    6. for (i = 1; i <= rows / 2 + 1; i++)
    7. {
    8. // 打印空格
    9. for (space = 1; space <= rows / 2 + 1 - i; space++)
    10. {
    11. printf(" ");
    12. }
    13. // 打印*
    14. for (j = 1; j <= 2 * i - 1; j++)
    15. {
    16. printf("*");
    17. }
    18. printf("\n");
    19. }

    为什么rows / 2 + 1我不直接写成7呢?因为这样写我们后面可以通过改变rows的值而打印其他的菱形,一行完成后我们就换行接着打印下一行中的内容。

     相同的道理我们来看看下半部分:

     先看看星号:11 9 7 5 3 1,同样还是2*i-1

    空格则是:1 2 3 4 5 6

    来看看下半部分的代码实现:

    1. // 打印下半部分
    2. for (i = rows / 2; i >= 1; i--)
    3. {
    4. // 打印空格
    5. for (space = 1; space <= rows / 2 + 1 - i; space++)
    6. {
    7. printf(" ");
    8. }
    9. // 打印*
    10. for (j = 1; j <= 2 * i - 1; j++)
    11. {
    12. printf("*");
    13. }
    14. printf("\n");
    15. }

    上下部分都搞定后,来看看整体代码:

    1. int main()
    2. {
    3. int rows = 13;
    4. int i = 0;
    5. int j = 0;
    6. int space = 0;
    7. // 打印上半部分
    8. for (i = 1; i <= rows / 2 + 1; i++)
    9. {
    10. // 打印空格
    11. for (space = 1; space <= rows / 2 + 1 - i; space++)
    12. {
    13. printf(" ");
    14. }
    15. // 打印*
    16. for (j = 1; j <= 2 * i - 1; j++)
    17. {
    18. printf("*");
    19. }
    20. printf("\n");
    21. }
    22. // 打印下半部分
    23. for (i = rows / 2; i >= 1; i--)
    24. {
    25. // 打印空格
    26. for (space = 1; space <= rows / 2 + 1 - i; space++)
    27. {
    28. printf(" ");
    29. }
    30. // 打印*
    31. for (j = 1; j <= 2 * i - 1; j++)
    32. {
    33. printf("*");
    34. }
    35. printf("\n");
    36. }
    37. return 0;
    38. }

    那么以上就完成了对它的实现了!

    我们来改一下rows的值,看看效果:

     今天就到这里咯,拜拜!

  • 相关阅读:
    文举论金:黄金原油全面走势分析策略独家指导
    objection 基础案例 一
    k8s apiserver启动执行流程之aggregatorServer
    Python gdal读取MODIS遥感影像并结合质量控制QC波段掩膜数据
    教你买了新电脑后的基础设置要怎么做
    Windows Server 2022 安全功能重大更新
    自学软件测试真的可以吗?
    《JavaSE-第十九章》之Collection
    使用kind快速搭建本地k8s集群
    idea中maven导入依赖不进行提示的问题(已经解决)
  • 原文地址:https://blog.csdn.net/2302_77675796/article/details/134254706