给定字符和边长n输出空心带框菱形字符图案
时间: 2024-12-20 20:19:15 浏览: 7
要打印一个空心带框的菱形字符图案,我们可以使用嵌套循环来控制行数和列数。对于菱形的每一层,我们可以计算行数和列数,然后根据这些信息打印字符。内层循环用于打印点(通常是星号(*)),外层循环控制点的位置。下面是生成5x5大小空心菱形的C语言代码示例:
```c
#include <stdio.h>
// 函数定义
void printDiamond(int n, char fillChar) {
// 计算上半部分的行数
int topRows = n / 2;
for (int i = 0; i <= topRows; i++) {
// 打印外侧边框
printf("*%s*", fillChar);
// 计算当前行的内部点数
int innerPoints = 2 * i + 1;
// 打印内侧点
for (int j = 0; j < innerPoints; j++) {
printf("%c", fillChar);
}
// 换行
printf("\n");
}
// 下半部分,从上到下递减
for (int i = topRows - 1; i >= 0; i--) {
// 只打印两边的点
printf("*%c*", fillChar);
// 内部点数减少,但边界保持不变
int innerPoints = 2 * i + 1;
// 打印内侧点
for (int j = 0; j < innerPoints; j++) {
printf("%c", fillChar);
}
// 换行
printf("\n");
}
}
int main() {
int n;
printf("请输入边长: ");
scanf("%d", &n);
printf("请输入字符(默认为*): ");
char fillChar = getchar(); // 读取一个字符,如果没有指定则用*
printDiamond(n, fillChar); // 执行打印函数
return 0;
}
```
阅读全文