C言語で空洞菱形を出力する方法

C言語で入れ子になったループを使用して空洞のあるひし形を出力できます。以下にサンプルコードを示します。

#include <stdio.h>

int main() {
    int n, i, j, space;

    // 输入菱形的大小
    printf("请输入菱形的大小:");
    scanf("%d", &n);

    // 输出上半部分
    for (i = 1; i <= n; i++) {
        // 输出空格
        for (space = 1; space <= n - i; space++) {
            printf(" ");
        }
        // 输出星号
        printf("*");
        for (j = 2; j < 2 * i - 1; j++) {
            printf(" ");
        }
        if (i != 1) {
            printf("*");
        }
        // 换行
        printf("\n");
    }

    // 输出下半部分
    for (i = n - 1; i >= 1; i--) {
        // 输出空格
        for (space = 1; space <= n - i; space++) {
            printf(" ");
        }
        // 输出星号
        printf("*");
        for (j = 2; j < 2 * i - 1; j++) {
            printf(" ");
        }
        if (i != 1) {
            printf("*");
        }
        // 换行
        printf("\n");
    }

    return 0;
}

菱形の上部と下部を出力する二重のネストしたループで構成されており、各行では、スペース、アスタリスク、改行が出力されます。完全な菱形を得るには、入力が奇数であることを確認してください。

bannerAds