我说两句

以下实例使用嵌套 for 循环来输出菱形:

#include <iostream>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    //外层循环控制行、换行
    //内层循环控制列、列的图形
    //中分的三角菱形
    //定义半菱形高度,即定义了菱形的大小
    int n ;
    cout<<"请输入半菱形高度"<<endl;
    cin >> n; 
    //上半部分居中正三角n行
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n - i -1; j++)
        {
            cout<<" ";
        }
        for (int j = 0; j <= 2 * i; j++)
        {
            //每行第一个和最后一个外打印星号,其余打印空格,做成空心效果,下半部分相同
            if (j == 0 or j == 2 * i)
                cout<<"*";
            else
                cout<<" ";
        }
        cout<<endl;
    }

    //下半部分居中倒三角n-1行
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            cout<<" ";
        }
        for (int j = 0; j <= 2 * ( n - i - 2 ); j++)
        {
            if (j == 0 or j == 2 * ( n - i - 2 ))
                cout<<"*";
            else
                cout<<" ";
        }
        cout<<endl;
    }
    return 0;
}

测试输出结果:

请输入半菱形高度
5
    *
   * *
  *   *
 *     *
*       *
 *     *
  *   *
   * *
    *