[排版题] 例4.1 输出梯形

四 排版题

此类题目,不再把注意力放到处理输入数据当中,而对输出作特别的关注。

题目描述:
输入一个高度h,输出一个高为h,上底边为h的梯形。
输入:
一个整数h(1<=h<=1000)
输出:
h所对应的梯形
样例输入:
4
样例输出:
          ****
       ******
    ********
 **********

解题思路: 这种明显可以看出,直接通过对输出的控制即可完成排版.本题思路,按行输出,最后一行没有空格,且前面的字符长度与最后一行一致,先算出最后一行的字符个数,即每一行的列数.每一行的字符个数递增2,空格个数也就递减2.按此规律进行输出.

#include<bits/stdc++.h>
using namespace std; 

int main()
{
	int h;
	while(scanf("%d", &h)!=EOF){
		int max_Line = h + (h-1)*2;
		for(int i=1; i<=h; i++){
			for(int j=0; j<max_Line; j++){
				if(j<max_Line-h-(i-1)*2)//输出空格
					cout << " ";
				else cout << "*";
			} 
			cout << endl;
		}
	}
	return 0;
}

结束


猜你喜欢

转载自blog.csdn.net/zdx1996/article/details/86583493