打印皇冠

Posted delongzhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印皇冠相关的知识,希望对你有一定的参考价值。

#include <iostream>

using namespace std;
int main()

    //用一般方式打印出皇冠
       cout<<"*          *          *"<<endl;
       cout<<" ***      ***      *** "<<endl;
       cout<<"  *****  *****  *****  "<<endl;
       cout<<"   *****************   "<<endl;//17 4
       cout<<"    ***************    "<<endl;//15 5
       cout<<"     *************     "<<endl;//13
    cout<<"-------------------------------------------------------------------"<<endl;
    //用循环打印
    int topline;//冠顶行数
    cin>>topline ;
    //先打印冠顶
    int a=topline;//加一变量控制空格数
    for(int i = 0;i < topline;i++)//控制皇冠顶的行数
        
            for(int j=0;j<i;j++)//打印最左边空格区
                cout<<" ";
            for(int k=0;k<2*i+1;k++)//打印左边星
                cout<<"*";
            for(int j=0;j<4*a-2;j++)//打印左边空格区
                cout<<" ";
            for(int k=0;k<2*i+1;k++)//打印中间星
                cout<<"*";
            for(int j=0;j<4*a-2;j++)//打印右边空格区
                cout<<" ";
            for(int k=0;k<2*i+1;k++)//打印右边星
                cout<<"*";
            for(int j=0;j<i;j++)//打印最右边空格区
                cout<<" ";
            a--;//把中间空格数的变量值改变
            cout<<endl;
        
        //再打印冠底
        int b;
        b=3*(2*topline-1)+2;//确定冠底第一行的星的个数
        for(int i = topline;i <2*topline;i++)//控制皇冠底的行数
        
            for(int j=0;j<i;j++)//打印最左边空格区
                cout<<" ";
            for(int k=0;k<b;k++)//打星
                cout<<"*";
            b-=2;//递减
            for(int j=0;j<i;j++)//打印最右边空格区
                cout<<" ";
            cout<<endl;//换行
        




    return 0;

技术图片

 

以上是关于打印皇冠的主要内容,如果未能解决你的问题,请参考以下文章