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

C語言實戰:用for循環打印帶間距的實心菱形

     編輯:關於C語言

C語言實戰:用for循環打印帶間距的實心菱形

網上常見菱形打印代碼輸出的*緊湊相連,本文實現每個*號後帶一空格,視覺效果更對齊、更美觀。

一、菱形幾何規律

邊長為n的實心菱形,總行數 = 2n-1(奇數行)。

  • 第i行(1≤i≤2n-1)前導空格數 = |n-i|。
  • 第i行*數量 = n - |n-i|。
  • 每個*後輸出一空格(printf("* ")),首行末行同理。

二、完整代碼

#include <stdio.h>
#include <stdlib.h> // abs()

int main() {
    printf("請輸入邊長 n:");
    int n;
    if (scanf("%d", &n) != 1 || n <= 0) return 1;

    for (int i = 1; i <= 2*n - 1; i++) {
        // 前導空格
        for (int j = 1; j <= abs(n - i); j++)
            printf(" ");
        // 星號 + 空格
        for (int k = 1; k <= n - abs(n - i); k++)
            printf("* ");
        printf("\n");
    }
    return 0;
}

三、運行示例(n=3)

  * 
 * * 
* * * 
 * * 
  * 

每行*間均勻分布,菱形輪廓清晰對稱。

四、關鍵點解析

  1. abs(n-i)統一處理上半部(遞增)與下半部(遞減)的空格/星號數學規律。
  2. printf("* ")而非printf("*"),實現星號間距。
  3. 輸入合法性檢查:n>0且scanf成功。

五、擴展練習

  • 打印空心菱形(僅邊框)。
  • 支持字符自定義(如#、@)。
  • 雙層菱形、旋轉45度等變體。

掌握幾何規律轉代碼邏輯,是鍛煉迴圈控制能力的經典入門題。

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