C语言题目输入 一个正整数 n (n< 30) 表示要求打印图形的递归深度。 输出 对应递归深度的雪花图案。 样例输入 1 样例输出 *
时间: 2024-02-18 21:04:28 浏览: 29
以下是一个 C 语言代码示例,用于输出对应递归深度的雪花图案:
```c
#include <stdio.h>
void drawSnowflake(int n) {
if (n == 0) {
printf("*\n");
} else {
drawSnowflake(n-1);
int size = 3 * (1 << (n-1));
char snowflake[size][size];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
snowflake[i][j] = ' ';
}
}
int step = size / 3;
for (int i = 0; i < step; i++) {
for (int j = 0; j < step; j++) {
snowflake[i][j+step] = '*';
snowflake[i+step][j] = '*';
snowflake[i+step][j+2*step] = '*';
snowflake[i+2*step][j+step] = '*';
}
}
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
printf("%c", snowflake[i][j]);
}
printf("\n");
}
drawSnowflake(n-1);
}
}
int main() {
int n;
scanf("%d", &n);
drawSnowflake(n);
return 0;
}
```
该程序使用递归的方式绘制雪花图案。对于深度为 0 的情况,程序输出一个星号。对于深度大于 0 的情况,程序会递归地绘制深度为 n-1 的雪花图案,并创建一个二维字符数组来存储绘制结果。程序首先将整个数组填充为空格字符,然后根据图案的对称性,在数组中标记出星号的位置。最后,程序按行输出数组中的字符,即为雪花图案。