对于这种输出图可以先分析
行数 空格(符号之前的) 字符
1--------- 3----------- 1
2--------- 2----------- 3
3--------- 1----------- 5
4--------- 0----------- 7
5--------- 1----------- 5
6--------- 2----------- 3
7--------- 3----------- 1
把图形从第四行分开分成上下两半,上半部分字符2i+1(i为行数-1),空格从3--0递减;下半部分将第5行看作第一行,字符5-2i(i为行数-1),空格等于行数1--3递加
程序:
#include
int main()
{
//---------上半部分-----------
for(int i=0;i<4;i++)
{
for(int j=i;j<3;j++)//控制空格输出个数
printf(" ");//输出空格
for(int k=0;k<2i+1;k++)//控制字符输出个数
printf(" * ");//输出字符
printf("\n");
}
//--------下半部分------------
for(i=0;i<3;i++)//下半部分只有3行定义i<3
{
for(int j=0;jprintf(" ");
for(int k=0;k<5-2i;k++)
printf(" * ");
printf("\n");
}
retutn 0;
}