C程序打印空心金字塔和菱形图案

在这里,我们将看到如何使用 C 生成空心金字塔和菱形图案。我们可以非常轻松地生成实心金字塔图案。为了使它空洞,我们必须添加一些技巧。

空心金字塔

对于第一行的金字塔,它将打印一颗星,而在最后一行,它将打印 n 颗星。对于其他行,它将在行的开头和结尾打印两颗星,并且在这两个开头之间会有一些空格。

示例代码

#include <stdio.h>

int main() {

   int n, i, j;

   printf("输入行数: ");

   scanf("%d", &n);

   for(i = 1; i<=n; i++) {

      for(j = 1; j<=(n-i); j++){ //打印星号前的空格

         printf(" ");

      }

      if(i == 1 || i == n){ //对于第一行和最后一行,打印

         stars continuously

         for(j = 1; j<=i; j++) {

            printf("* ");

         }

      } else {

         printf("*"); //在开始和结束的每一行星号中

         position

         for(j = 1; j<=2*i-3; j++) { //打印空间使空心

            printf(" ");

         }

         printf("*");

      }

      printf("\n");

   }

}

输出结果
输入行数: 20

                                         *

                                       *   *

                                      *     *

                                     *       *

                                    *         *

                                   *           *

                                  *             *

                                 *               *

                                *                 *

                               *                   *

                              *                     *

                             *                       *

                            *                         *

                           *                           *

                          *                             *

                         *                               *

                        *                                 *

                       *                                   *

                      *                                     *

                     * * * * * * * * * * * * * * * *  * * *  *

空心钻石

对于第一行和最后一行的钻石,它将打印一颗星。对于其他行,它将在行的开头和结尾打印两颗星,并且在这两个开头之间会有一些空格。钻石有两部分。上半部和下半部。在上半部分,我们必须增加空间计数,而对于下半部分,我们必须减少空间计数。这里可以使用另一个称为 mid 的变量将行号分为两部分。

示例代码

#include <stdio.h>

int main() {

   int n, i, j, mid;

   printf("输入行数: ");

   scanf("%d", &n);

   if(n %2 == 1) { //当 n 为奇数时,将其增加 1 使其为偶数

      n++;

}

mid = (n/2);

for(i = 1; i<= mid; i++) {

    for(j = 1; j<=(mid-i); j++){ //打印星号前的空格

      printf(" ");

    }

    if(i == 1) {

      printf("*");

    } else {

      printf("*"); //在开始和结束的每一行星号中

      position

      for(j = 1; j<=2*i-3; j++){ //打印空间使空心

          printf(" ");

      }

      printf("*");

    }

    printf("\n");

}

for(i = mid+1; i<n; i++) {

   for(j = 1; j<=i-mid; j++) { //打印星号前的空格

      printf(" ");

   }

   if(i == n-1) {

      printf("*");

   } else {

      printf("*"); //在开始和结束的每一行星号中

      position

      for(j = 1; j<=2*(n - i)-3; j++) { //打印空间

        hollow

        printf(" ");

      }

      printf("*");

   }

   printf("\n");

}

输出结果
输入行数: 15

                      *

                    *   *

                  *       *

                 *         *

                *           *

               *             *

              *               *

             *                 *

              *               *

               *             *

                *           *

                 *         *

                   *     *

                    *   *

                      *

以上是 C程序打印空心金字塔和菱形图案 的全部内容, 来源链接: utcz.com/z/349159.html

回到顶部