C语言打印用数字构成的菱形图案,菱形上半部分的行数n( 1

【问题描述】编程打印用数字构成的菱形图案,菱形上半部分的行数n( 1<n<10 )从键盘输入,总行数为2n-1。图案的样式按下面的样例。

【输入形式】从键盘输入包括中间一行在内的菱形上半部分的行数n( 1<n<10 )。

【输出形式】输出用数字构成的菱形图案,样式按下面的样例,其中各数字间用1个空格间隔,最中间最长的一行的起始数字1位于第1列。

【样例输入】4

【样例输出】

     1 
   1 2 1 
 1 2 3 2 1 
1 2 3 4 3 2 1 
 1 2 3 2 1 
   1 2 1 
     1

源代码

#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);

    // 打印上半部分
    for (int i = 1; i <= n; i++) {
        // 打印空格
        for (int j = 1; j <= n - i; j++) {
            printf(" ");
        }

        // 打印递增数字
        for (int j = 1; j <= i; j++) {
            printf("%d ", j);
        }

        // 打印递减数字
        for (int j = i - 1; j >= 1; j--) {
            printf("%d ", j);
        }

        printf("\n");
    }

    // 打印下半部分
    for (int i = n - 1; i >= 1; i--) {
        // 打印空格
        for (int j = 1; j <= n - i; j++) {
            printf(" ");
        }

        // 打印递增数字
        for (int j = 1; j <= i; j++) {
            printf("%d ", j);
        }

        // 打印递减数字
        for (int j = i - 1; j >= 1; j--) {
            printf("%d ", j);
        }

        printf("\n");
    }

    return 0;
}

在这个程序中,我们首先通过键盘输入菱形上半部分的行数n。然后使用两个for循环来打印菱形的上半部分和下半部分。

对于上半部分,我们使用第一个for循环控制行数,第二个for循环用于打印每一行的空格和数字。首先打印空格(个数为n-i),然后打印递增的数字(从1到i),再打印递减的数字(从i-1到1)。

对于下半部分,同样使用两个for循环来打印每一行的空格和数字。空格的个数和上半部分相反,递增的数字和上半部分相同,递减的数字也相同。

注意:请确保输入的行数n满足1<n<10的条件,以避免菱形过大无法完整显示。

运行截图

图片[1]-C语言打印用数字构成的菱形图案,菱形上半部分的行数n( 1-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏 分享