c++初学者遇到的问题

img

,如图所示,用“*”号输出一个空心的三角形,求解一下c++程序代码

img

#include <iostream>

using namespace std;
int main()
{

    int i, j,n=4;
    for (i=0; i<n; i++)
    {
        if(i!=n-1)
        {
            for (j=0; j<2*n-1; j++)
            {
                if(j==n-i-1||j==n+i-1)
                    cout<<"*";
                else
                   cout<<" ";
            }
        }
        else
        {
            for(j=0; j<2*n-1; j++)
                 cout<<"*";
        }
        cout<<endl;
    }
}


#include<iostream>
using namespace std;
int main(){
    //输出另外一种由星号组成的三角形(星号居中对齐)
        int a;//控制组成三角形的星号的行数
        cout<<"请输入要组成三解形的星号的行数n(n>=2):\n";
        cin>>a;
        for(int i=1;i<a+1;i++)//控制行数
        {
            for(int j=a-i;j>=0;j--)
            {
                cout<<"  ";//这里是两个空格
            }
            for(int k=0;k<2*i-1;k++)//控制每行星号的个数。
            {
                if(i==0||i==a)
                {
                    cout<<"* ";//星号后加了一个空格(为使打印出一图形更直观)。
                }
                else
                if(k==0||k==2*i-2)
                    {
                        cout<<"* ";
                    }
                
                    else
                        cout<<"  ";
            }
            cout<<endl;
        }
    
    return 0;
}

#include<iostream>
using namespace std;
int main()
{
    int i,j,n;
    cout<<"输入一个数:"<<endl;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=2*n-1;j++)
        {
            if(i+j==n+1||j-i==n-1||i==n)
                cout<<"*";
            else
                cout<<" ";
        }
        cout<<endl;
    }
}

可根据输入的值显示相应的行数,如下:

img


/*
     *
    * *
   *   *
  *     *
 *       *
***********

*/
#include <iostream>
using namespace std;


int main()
{
    int n, total, i, j;
    cin >> n; //行数
    total = 2 * n - 1;
    for (i = 0; i < n - 1; i++)
    {
        for (j = 1; j < total; j++)
        {
            if (j == n + i || j == n - i)
                cout << "*";
            else
                cout << " ";
        }
        cout << endl;
    }
    //最后一行
    for (i = 0; i < total; i++)
        cout << "*";

    return 0;
}


#include <iostream>

using namespace std;

int main()
{

    cout<<"    *    "<<endl;
    cout<<"   * *   "<<endl;
    cout<<"  *   *"<<endl;
    cout<<" *******"<<endl;
    return 0;
}