c编程怎么打出钻石形

时间:2025-01-25 19:39:36 网络游戏

在C语言中,可以使用两层嵌套循环来打印出钻石形状。以下是一个示例代码,它可以打印出一个规则的星号构成的钻石形状图案:

```c

include

int main() {

int row = 15; // 钻石的大小

int half = row / 2 + 1; // 对称轴上的行数

int i, j;

// 打印钻石的上半部分

for (i = 1; i <= half; i++) {

// 打印前导空格

for (j = 1; j <= half - i; j++) {

printf(" ");

}

// 打印星号

for (j = 1; j <= 2 * i - 1; j++) {

printf("*");

}

printf("\n");

}

// 打印钻石的下半部分

for (i = 1; i < half; i++) {

// 打印前导空格

for (j = 1; j <= i; j++) {

printf(" ");

}

// 打印星号

for (j = 1; j <= 2 * (half - i - 1) + 1; j++) {

printf("*");

}

printf("\n");

}

return 0;

}

```

代码解释:

初始化

`row`:钻石的大小,这里设置为15。

`half`:对称轴上的行数,计算公式为 `row / 2 + 1`。

打印上半部分

外层循环 `for (i = 1; i <= half; i++)` 控制行数。

第一个内层循环 `for (j = 1; j <= half - i; j++)` 打印前导空格。

第二个内层循环 `for (j = 1; j <= 2 * i - 1; j++)` 打印星号。

打印下半部分

外层循环 `for (i = 1; i < half; i++)` 控制行数。

第一个内层循环 `for (j = 1; j <= i; j++)` 打印前导空格。

第二个内层循环 `for (j = 1; j <= 2 * (half - i - 1) + 1; j++)` 打印星号。

通过这种方式,程序可以动态地调整前导空格和星号的数量,从而打印出对称且逐渐收窄的星号序列,最终呈现出完整的钻石形态。