题目:
打印菱形
题目内容:
用C语言在屏幕上输出以下图案:
思路:
这道题的解决办法有很多,大多都是拆分法,这里捡一种我觉得最方便的方法作以介绍:首先我们需要明白,这种图案形式打印的题目,都是一行一行打印出来的。之后就是考虑如何做方便了。
拆分:我们将菱形拆分成 上三角 + 中间最长的部分 + 下三角 ,分别打印即可仔细观察,每一行的图案由空格和星号组成,数一数对应行的空格数和星号数分别进行打印即可找规律,我们发现,‘*’的数量是 2*row-1,‘ ’的数量是7-row。好了,可以写代码了!
代码
//先来一个打印*和空格数量的函数
void PrintLine(int starCount, int spaceCount)
{for (int i = 0; i < spaceCount; i++){printf(" ");}for (int i = 0; i < starCount; i++){printf("*");}printf("\n");
}
//然后再写打印菱形的函数
void PrintLingXing()
{//先打印上半角for (int row = 1; row<=6; row++){PrintLine(row * 2 - 1, 7 - row);}//在打印中间部分PrintLine(13, 0);//下三角,反着循环上三角即可for (int row = 6; row>=1; row--){PrintLine(row * 2 - 1, 7 - row);}
}void main()
{PrintLingXing();
}