设计思路
以n行菱形为例(n为奇数),图形分为上下2部分,左上角坐标为(0,0),顶点坐标为(0,n/2),图形上半部分(0~n/2),从第1行到第n/2行,每行菱形数递增1个单位,同时每行菱形的起始坐标递减1个单位。图形下半部分(n/2+1,n),从第n/2+1行到第n行,每行菱形数递减1个单位,同时每行菱形的起始坐标递增1个单位。
效果图
核心代码
#include <iostream>
#include <stdio.h>
using namespace std;
void printRhombic(char c, int row)
{
int i, j, m, k;
m = (row + 1) / 2;
for (i = 1; i <= row; i++)
{
if (i <= m)
{
for (j = m - i; j > 0; j--)
{
count << " ";
}
for (k = i; k > 0; k--)
{
cout << c << " ";
}
}
else
{
for (j = i - m; j > 0; j--)
{
cout << " ";
}
for (k = 2 * m -