c语言编写程序:读入空心等腰梯形的高度(也是首行字母数)
时间: 2023-05-24 10:02:48 浏览: 67
请问下一行开始如何打印该空心等腰梯形?
A: 可以使用循环嵌套打印空心等腰梯形,具体步骤如下:
1. 读入空心等腰梯形的高度(也是首行字母数),保存在变量height中;
2. 使用两层for循环,外层循环控制行数,内层循环控制每行空格和星号的输出;
3. 在第一行输出height个星号,从第二行开始每行输出(height-i)个空格、1个星号、以及(2i-3)个空格和1个星号;
4. 在第height行输出height个星号。
下面是基于上述思路的C语言代码示例:
```c
#include <stdio.h>
int main() {
int height, i, j;
printf("请输入空心等腰梯形的高度(也是首行字母数):");
scanf("%d", &height);
// 第一行,输出height个星号
for (i = 1; i <= height; i++) {
printf("*");
}
printf("\n");
// 中间部分,循环输出每行的空格和星号
for (i = 2; i < height; i++) {
// 输出行首的一个星号
printf("*");
// 输出该行前面的空格
for (j = 2; j <= height-i+1; j++) {
printf(" ");
}
// 如果不是最后一行,输出中间的空心部分
if (i < height) {
printf("*");
// 输出该行中间的空格
for (j = 1; j <= 2*i-4; j++) {
printf(" ");
}
// 输出该行末尾的星号
printf("*");
}
// 输出该行末尾的一个星号,并换行
printf("*\n");
}
// 最后一行,输出height个星号
for (i = 1; i <= height; i++) {
printf("*");
}
printf("\n");
return 0;
}
```
假设输入的高度为5,上述代码的输出为:
```
*****
* *
* *
* *
*****
```