C 程式列印空心金字塔和菱形圖案


在這裡,我們將看到如何使用 C 生成空心金字塔和菱形圖案。我們可以非常輕鬆地生成實心金字塔圖案。為了使其空心,我們必須新增一些技巧。

空心金字塔

對於第一行的金字塔,它將列印一個星號,並且在最後一行中,它將列印 n 個星號。對於其他行,它將在行的開頭和結尾精確地列印兩個星號,並且在這兩個星號之間將有一些空白。

示例程式碼

#include <stdio.h>
int main() {
   int n, i, j;
   printf("Enter number of lines: ");
   scanf("%d", &n);
   for(i = 1; i<=n; i++) {
      for(j = 1; j<=(n-i); j++){ //print the blank spaces before star
         printf(" ");
      }
      if(i == 1 || i == n){ //for the first and last line, print the
         stars continuously
         for(j = 1; j<=i; j++) {
            printf("* ");
         }
      } else {
         printf("*"); //in each line star at start and end
         position
         for(j = 1; j<=2*i-3; j++) { //print space to make hollow
            printf(" ");
         }
         printf("*");
      }
      printf("
"); } }

輸出

Enter number of lines: 20
                                         *
                                       *   *
                                      *     *
                                     *       *
                                    *         *
                                   *           *
                                  *             *
                                 *               *
                                *                 *
                               *                   *
                              *                     *
                             *                       *
                            *                         *
                           *                           *
                          *                             *
                         *                               *
                        *                                 *
                       *                                   *
                      *                                     *
                     * * * * * * * * * * * * * * * *  * * *  * 

空心菱形

對於第一行和最後一行中的菱形,它將列印一個星號。對於其他行,它將在行的開頭和結尾精確地列印兩個星號,並且在這兩個星號之間將有一些空白。菱形分為兩部分。上半部分和下半部分。在上半部分,我們必須增加空格數量,而在下半部分,我們必須減少空格數量。在這裡,可以使用另一個稱為 mid 的變數將行號分成兩部分。

示例程式碼

#include <stdio.h>
int main() {
   int n, i, j, mid;
   printf("Enter number of lines: ");
   scanf("%d", &n);
   if(n %2 == 1) { //when n is odd, increase it by 1 to make it even
      n++;
}
mid = (n/2);
for(i = 1; i<= mid; i++) {
    for(j = 1; j<=(mid-i); j++){ //print the blank spaces before star
      printf(" ");
    }
    if(i == 1) {
      printf("*");
    } else {
      printf("*"); //in each line star at start and end
      position
      for(j = 1; j<=2*i-3; j++){ //print space to make hollow
          printf(" ");
      }
      printf("*");
    }
    printf("
"); } for(i = mid+1; i<n; i++) {    for(j = 1; j<=i-mid; j++) { //print the blank spaces before star       printf(" ");    }    if(i == n-1) {       printf("*");    } else {       printf("*"); //in each line star at start and end       position       for(j = 1; j<=2*(n - i)-3; j++) { //print space to make         hollow         printf(" ");       }       printf("*");    }   printf("
"); }

輸出

Enter number of lines: 15
                      *
                    *   *
                  *       *
                 *         *
                *           *
               *             *
              *               *
             *                 *
              *               *
               *             *
                *           *
                 *         *
                   *     *
                    *   *
                      *

更新於: 30-Jul-2019

3K+ 次瀏覽

開啟您的 職業生涯

完成課程即可獲得認證

開始學習
廣告