问题 A: 输出梯形
[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB
题目描述
输入一个高度h,输出一个高为h,上底边为h的梯形。
输入
一个整数h(1<=h<=1000)。
输出
h所对应的梯形。
样例输入 Copy
5
样例输出 Copy
*****
*******
*********
***********
*************
思路:h行 第一行有h列星号*。发现列数col=行数row+2(row-1),每行输出的*递增2,空格递减2。利用循环输出图形。
注意:虽然题目没说明输入有多组,但是这里要用while循环判断EOF,否则不能通过,还要注意最后的换行,看是每一行打印完都换行,还是除了最后一行不换行,前面都换行。
#include<cstdio>
int main(){
int row,col;//有h行,h+2*(h-1)列
while(~scanf("%d",&row)){//h即为行数row 注意判断输入是否结束,codeup是多点测试
col=row+2*(row-1);
int add=0;
for(int i=0;i<row;i++)//第1行输出col-h列空格,h列*,之后输出的空格每行递减2,*每行递增2列,
{
for(int k=0;k<col-row-add;k++)
{
printf(" ");
}
for(int j=0;j<row+add;j++){
printf("*");
}
printf("\n");
add=add+2;
}
}
return 0;
}
本文介绍了一个使用C++编程语言解决梯形输出问题的算法。输入一个整数h,程序将输出一个高度为h,上底边也为h的梯形。文章详细解析了如何通过循环和条件判断来实现图形的正确输出,并提供了完整的代码示例。
230

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



