第一章枚举与模拟
模拟问题
02.输出梯形
题目描述:
输入一个高度h,输出一个高为h,上底边为h的梯形。
输入:
一个整数h(1<=h<=1000)。
输出:
h所对应的梯形
样例输入:
4
样例输出:
****
******
********
**********
可以列表总结出规律,对于h=4,i为第i行
i | 空格 | * |
0 | 6 | 4 |
1 | 4 | 6 |
2 | 2 | 8 |
3 | 0 | 10 |
从而可以推断当为h行时
i | 空格 | * |
0 | 2h-2 | h |
1 | 2h-2-2*i | h+2*i |
… | … | … |
h-1 | 0 | 3h-2 |
然后我们可以写出
#include <cstdio>
int main() {
int h;
for(int i=0;i<h;i++){//先输出空格
for(int j=0;j<2*h-2-2*i;j++){
printf(" ");
}
for(int j=0;j<h+2*i;j++){//在输出*
printf("*");
}
printf("\n");// \n表示换行
}
return 0;
}
如果要求我们多次输出,例如需要连续输出h=3,4,5的三种情况,在这种不确定的情况下,我们需要添加while循环如下
#include <cstdio>
int main() {
int h;
while(scanf("%d",&h)!=EOF){//为了多次输出梯形,最后Ctrl+D表示文件终止,EOF是-1,VS中文件终止符是Ctrl+Z
for(int i=0;i<h;i++){
for(int j=0;j<2*h-2-2*i;j++){
printf(" ");
}
for(int j=0;j<h+2*i;j++){
printf("*");
}
printf("\n");// \n表示换行
}
}
return 0;
}
这篇博客介绍了如何使用C语言来输出不同高度的梯形。通过示例代码展示了如何根据输入的高度h,动态生成相应的梯形图案。代码中使用了双重循环,外层循环控制行数,内层循环分别输出空格和星号,以形成梯形形状。为了实现多次输出不同高度的梯形,采用了while循环,读取用户输入的高度,直至文件结束。
&spm=1001.2101.3001.5002&articleId=129295452&d=1&t=3&u=a2585f1ed23e4068a16b20aa45442d2e)
528

被折叠的 条评论
为什么被折叠?



