题目:
绘制左边图的众多*输出图像,函数已给出:y=1,y=-x+2n,y=x。
解决方案:
思路
对于原来的坐标几何图形,2<=n,y<=x<=2n-y,1<=y<=x。
我们用来写C代码的函数首先要确定三角形高的范围,至少要2。
将图形分隔成上下两部分。从最高的顶点到三角形高的部分,和其下面的部分。
使用line表示行数,height表示高(由用户输入),line最大为2*height-1(对应2n-1),然后使用循环来处理每一行的输出。
判断行line是否等于高height来将图形分隔成上下两部分,判断条件为line是否<=height。
MySymbol用于输出*,相当于x,由于直线方程y=-x+2n,斜率为-1,所以对应上半的输出图像上随着行数+1而*号数量+1,MySymbol起始值为1,到函数交点x=n时停止,也就是第n行(第height行)。
下半部分,MySymbol递减至1。对应每次值应该为2*height-line(图像下半部分的边界为x=y,line+y=line+x=line+MySymbol=2*height所以MySymbol对应2*height-line)。
代码
#include <stdio.h>
#include <stdlib.h>
int main(</