首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言字元圖形進階:雙三角組合成菱形空心圖案(星號圖八)

     編輯:關於C

圖形幾何分析

目標列印高度為 2*num-1 行的菱形空心圖(num=5):

  • 上半部(第 1~num-1 行):每行兩顆星,位置對稱
  • 中間行(第 num 行):單顆星或全滿(視邏輯而定)
  • 下半部(第 num+1~2*num-1 行):鏡像上半部

本程式採用「上三角 + 下三角」兩段式列印,條件判斷 j == num-i+1 || j == num+i-1 精確定位兩側邊緣。

核心程式碼

#include <stdio.h>
const int num = 5;

int main()
{
    int i, j;

    // 印上三角(不含中間行)
    for (i = 1; i < num; i++) {
        for (j = 1; j < 2*num; j++) {
            if (j == num-i+1 || j == num+i-1) printf("*");
            else printf(" ");
        }
        printf("\n");
    }

    // 印下三角(含中間行)
    for (i = num; i > 0; i--) {
        for (j = 1; j < 2*num; j++) {
            if (j == num-i+1 || j == num+i-1) printf("*");
            else printf(" ");
        }
        printf("\n");
    }
    return 0;
}

執行輸出 (num=5)

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

關鍵座標公式推導

第 i 行(1-based),寬度 2*num-1:

  • 左星列 = num - i + 1
  • 右星列 = num + i - 1

下半部 i 從 num 遞減至 1,同樣公式適用,自然形成鏡像。

延伸修改建議

  • 將 num 改為使用者輸入
  • 修改條件為 j >= left && j <= right 列印實心菱形
  • 加入顏色、動畫效果(配合 sleep() 與 ANSI 轉義碼)

菱形空心圖案截圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved