C++编程题目打印金字塔和镂空金字塔

打印金字塔:

题目描述:

小明发现电脑可以打印出一些简单有趣的图形,比如金字塔:

  *
 ***
*****

小明希望能够过更便捷的打印出金字塔,比如输入n,就输出高度为n的金字塔。请你帮助小明实现。

输入格式:

仅一个正整数 n

输出格式:

共n行,组成如题干描述的金字塔形状。

样例输入1:

4

样例输出1:

   *
  ***
 *****
*******

约定:

n(2≤n≤40)

解答:

这一题我们利用双重for循环可以很轻松的解答

代码如下:

#include
using namespace std;
int main(){
    //定义变量n表示金字塔的行数,输入n。 
	int n;
    cin>>n;
    //定义外层for循环,遍历n次。 
	for(int i=1;i<=n;i++){
        //定义内层for循环1,遍历n-i次,打印空格。 
		for(int j=1;j<=n-i;j++){
            cout<<" ";
        }
        //定义内层for循环2,遍历i*2-1次,打印星号。 
        for(int j=1;j<=i*2-1;j++){
            cout<<"*";
        }
        //打印完一层后换行。 
        cout<

效果:

C++编程题目打印金字塔和镂空金字塔_第1张图片

 完成

打印镂空金字塔:

题目描述:

小明希望打印出来的金字塔能够更特别一点,比如镂空的金字塔:

     *
    * *
   * * *
  * * * *
 * * * * *
* * * * * *

小明希望能够过更便捷的打印出镂空的金字塔,比如输入n,就输出高度为n的镂空金字塔。请你帮助小明实现。

输入格式:

仅一个正整数 n(2≤n≤40)

输出格式:

共n行,组成如题干描述的镂空金字塔形状。

样例输入1:

5

样例输出1:

    *
   * *
  * * *
 * * * *
* * * * *

约定:

2≤n≤40

解答:

同理,这一题用双重for循环的解答

代码如下:

#include
using namespace std;
int main(){
    //定义变量n表示金字塔的行数,输入n。
	//定义变量m,利用m来判断打空格还是星号。 
	int n,m=1;
    cin>>n;
    //定义外层for循环,遍历n次。
	for(int i=1;i<=n;i++){
        //将m赋值为1。 
		m=1; 
        //定义内层for循环1,遍历n-i次,打前面的印空格。
		for(int j=1;j<=n-i;j++){
            cout<<" ";
        }
        //定义内层for循环2,遍历i*2-1次,打印星号或空格。
		for(int j=1;j<=i*2-1;j++){
            //条件判断,如果m==1,打印星号,否则,打印空格。 
			if(m==1){
                cout<<"*";
            }
            else{
                cout<<" ";
            }
            //改变m的值,将m*-1。 
			m*=-1;
        }
        //打印完一层后换行。
		cout<

效果:

C++编程题目打印金字塔和镂空金字塔_第2张图片

 完成

你可能感兴趣的:(c++,开发语言)