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

C語言字元圖形:雙實心三角組合成菱形實心圖案(星號圖七)

     編輯:關於C

與空心菱形的差異

本程式列印實心菱形,條件判斷從「等於邊緣」改為「在邊緣範圍內」:

if (j >= num-i+1 && j <= num+i-1) printf("*");
else printf(" ");

完整程式碼

#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)

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

空心 vs 實心條件對比

類型條件判斷幾何意義
空心j==left || j==right僅邊界
實心j>=left && j<=right區間填滿

統一參數化模板

void printDiamond(int n, int hollow) {
    for (int i=1; i<=n; i++) {
        int left = n-i+1, right = n+i-1;
        for (int j=1; j<=2*n-1; j++) {
            if (hollow) putchar((j==left||j==right)?'*':' ');
            else putchar((j>=left&&j<=right)?'*':' ');
        }
        puts("");
    }
    for (int i=n-1; i>=1; i--) { ... }
}

讀者可嘗試封裝成函式,支援任意大小、空心/實心切換。

實心菱形截圖

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