C代码实现:
#include <stdio.h> void printDiamond(int n) { int i, j, space = n - 1; // 打印上半部分包括中间行 for (i = 0; i <= n; i++) { // 打印空格 for (j = 0; j <= space; j++) printf(" "); // 打印星号 for (j = 1; j <= 2 * i - 1; j++) printf("*"); printf("\n"); // 减少空格数量 space--; } // 打印下半部分 space = 1; for (i = 1; i <= n - 1; i++) { // 打印空格 for (j = 1; j <= space; j++) printf(" "); // 打印星号 for (j = 1; j <= 2 * (n - i) - 1; j++) printf("*"); printf("\n"); // 增加空格数量 space++; }
} int main() { int n; printf("Please enter the size of the diamond (odd): "); scanf("%d", &n); if(n%2==0) { printf("Input error! The size of the diamond should be odd.\n"); return -1; } printDiamond(n); return 0;
}
代码思路:
1.定义一个函数printDiamond
,它接受一个整数参数n
,表示菱形的大小。
2.定义三个整数变量:i
和j
用于循环,space
用于跟踪每一行前面的空格数量。
3.外层循环,从0到n,用于控制菱形的上半部分和中间行。
4.内层循环,用于打印空格。空格的数量由space
变量控制,随着循环的进展而减少。
5.另一个内层循环,用于打印星号。星号的数量从1开始,每行增加2。