菱形图案打印
题目要求
其实呢这道题很多人想到直接用printf()进行输出,我想说的是,这样写不但麻烦、代码难看,而且实用性极低,所以当我们遇到这种类似循环输出题目是,不建议printf()输出;
接下来我就为大家简单介绍一下此题的做法,对于这类型的题其实我们只需要找到规律,就非常简单,仔细观察图形,可以发现,此图形中是由空格和*按照不同个数的输出组成的。我们这里将这个图案分为两个部分从上往下,按照2*(line-1-i)-1的方式减少,其中:line表示总共有多少行 按照上述方式,将上三角和下三角中的空格和*分别输出即可。
上三角
上三角:先输出空格,后输出*,每行中
空格:从上往下,一行减少一个
*:2*i+1的方式递增
代码实现如下
1. int main() 2. { 3. int line = 0; 4. int i = 0; 5. scanf("%d", &line);//可自己选择打印图案的大小 6. //打印上半部分 7. for(i=0; i<line; i++) 8. { 9. //打印一行 10. //打印空格 11. int j = 0; 12. for(j=0; j<line-1-i; j++) 13. { 14. printf(" "); 15. } 16. //打印* 17. for(j=0; j<2*i+1; j++) 18. { 19. printf("*"); 20. } 21. printf("\n"); 22. }
下三角
下三角:先输出空格,后输出*,每行中
空格:从上往下,每行多一个空格
代码实现如下
1. //打印下半部分 2. for(i=0; i<line-1; i++) 3. { 4. //打印一行 5. int j = 0; 6. for(j=0; j<=i; j++) 7. { 8. printf(" "); 9. } 10. for(j=0; j<2*(line-1-i)-1; j++) 11. { 12. printf("*"); 13. } 14. printf("\n"); 15. }