C语言打印图形小妙招
在c语言中我们常用使用空格和*来打印各种各样图形,像爱心
还有飞机
那么像这种打印图形一般有两种方法,一种是直接打印法, 另一种是函数打印法
直接打印法顾名思义就是使用printf函数直接打印图形,例如下面的飞机
#include <stdio.h>
int main() { printf(" @ / \ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
return 0; }
但用这种方法小图形还好说但大图形无疑是一种恐怖的工作量
所以这个时候我们一般采用第二种方法---函数打印法
例如爱心
#include <stdio.h> int main() { int i, j; for ( i = 0; i <3 ; i++) { for ( j = 0; j < 5-2*i; j++) printf(" "); for (j = 0; j < 6+4*i; j++) printf("*"); for (j = 0; j < 9-4*i; j++) printf(" "); for (j = 0; j < 6 + 4 * i;j++) printf("*"); printf(" "); } for (i = 0; i < 3; i++) { for (j = 0; j < 31; j++) printf("*"); printf(" "); } for (i = 0; i < 9; i++) { for (j = 0; j < 1 + 2*i;j++) printf(" "); for (j = 0; j < 29 - 4* i; j++) printf("*"); printf(" "); } }
在这串代码中,爱心被分为了三个部分
头三行是由一个空格小三角形+*梯形+空格大三角形+*梯形组成
中三行是由一个3*31的*长方形组成
最后一部分是由一个空格三角形+一个大*三角形
如代码所示,我们用数学的数列知识可以得到每个图形的表达式
用两个for循环来表示行列,就可以输出我们滴爱心啦~
当然这种方法也有局限,像在毫无规律的时候就只能老老实实一个一个用printf打印
总结一下 C语言打印图形分两种直接打印法和函数打印法
第一种很灵活但很繁琐
第二种很方便但有局限
在遇到复杂图形的时候,两种方法灵活运用就能够顺利打印
你们学废了吗?(#^.^#)