对于C语言 ,通常应用的是字符输出,而字符输出最常用的函数则是printf ,对于该函数一个最主要的功能就是在当前的输出设备上当前光标处输出所要输出的内容,同时移动当前输出设备上光标的位置。 应用printf函数进行输出,只能被动地输出内容,这就是我们常用的输出方法,在设计程序时,事先对于输出的字符进行输出位置的梳理,而后按照行列输出字符。这就是我们在设计输出多个*状图形时所遇到的,得用相当的程序代码对输出字符位置进行排序。 事实上,我们还有其他的方法,比如,采用先定义显示一个图形,而后再显示其他的图形。 定义函数 XianShiTuXing(int x ,int y ,int n) ,该函数的主要功能是在输出设备上的(x,y)坐标处显示基于n个*的星状图形。 假定星状图形为 * ** *** **** 坐标(x,y),x为垂直方向(行),y为水平方向(列)
则程序代码为:
XianShiTuXing(int x ,int y ,int n) { int i,j; for (i=1;i<=n;i ) { MoveCursor(x i-1,y); for (j=1;j<=i;j ) printf("*"); printf("n"); } }
当然函数MoveCursor(x i-1,y)是移动光标。
如果我们采用了以上函数,则在水平方向上显示k个相同图形,我们可采用: int i,j; for (i=0;i<k;i ) XianShiTuXing(x ,y i* n , n);
其中 函数 MoveCursor(x i-1,y) 可参见conio.h 中的函数gotoxy(x,y)。