北理工c语言乐学【测试题2】字符菱形
时间: 2025-02-01 16:22:37 浏览: 58
### 关于C语言字符菱形打印
对于给定的起始字母和高度,可以构建一个空心字符菱形。此问题可以通过控制循环结构来实现不同位置上的字符填充以及空格的数量调整。
下面是一个基于输入样例 `C 4` 的解决方案:
```c
#include <stdio.h>
void hollow_char_diamond(char startChar, int height) {
char currentChar = startChar;
// 上半部分
for (int i = 0; i < height / 2 + 1; ++i) {
for (int space = 0; space < height / 2 - i; ++space)
printf(" ");
if (i == 0 || i == height / 2) {
printf("%c\n", currentChar++);
} else {
printf("%c", currentChar);
for (int k = 0; k < 2 * i - 1; ++k)
printf(" ");
printf("%c\n", currentChar++);
}
}
// 下半部分
for (int i = height / 2 - 1; i >= 0; --i) {
for (int space = 0; space < height / 2 - i; ++space)
printf(" ");
if (i != 0 && i != height / 2) {
printf("%c", currentChar);
for (int k = 0; k < 2 * i - 1; ++k)
printf(" ");
printf("%c\n", currentChar);
} else {
printf("%c\n", currentChar);
}
currentChar++;
}
}
int main() {
char ch;
int h;
scanf("%c%d", &ch, &h);
hollow_char_diamond(ch, h);
return 0;
}
```
上述代码实现了根据指定的高度和起始字母创建一个空心字符菱形的功能[^1]。通过两个主要的部分——上半部和下半部分别处理正向增长与反向缩减的过程,在每一行中适当增加或减少前导空白数量,并按照规则输出相应字符。
阅读全文
相关推荐


















