C语言编程输出菱形代码,使用循环嵌套
如何用c语言for循环打出一个空心菱形?
代码截图:
代码:
void print_polygon(int rows)
{
if (rows % 2 == 0)
rows++;
画图画图(不画图难以会意)。下面是一个草图😁(找了个在线白板画的,漂亮吧~^(* ̄(oo) ̄)^)。
如图所示,***设要画一个规格为2a*2b的◇。a,b分别为对应方向的中心位置。不难看出,程序一共需要打印2b+1行,2a+1列(因为第0行0列也是需要打印的,但是程序是从0开始计数的,因此最后的行列下标就是2a和2b,2a+1和2b+1是数量)。
程序打印通常会使用空格和*作为打印菱形的字符,由于基本的输出单位是字符(相当于菱形内的所有角的大小是固定的,不论多么大的菱形都是相似的),所以2a和2b会相互制约。我想打印一个10*50的菱形时,当打印到第5行是就已经从横向偏移量为0的位置开始打印了,第6行将会从-1列开始打印,这样打印出的图案将会是一个不完成的菱形,如下图,虚线部分将不会被打印。
程序以行为输出,因此我们不在控制y轴,只通过控制x轴方向的a来控制菱形的大小。我们不妨来归纳一下打印的规则:
第0行需要打印a个空格、打印一个*、换行。
第1行需要打印a-1个空格、打印1个*、打印1个空格、打印1个*、换行。
第2行需要打印a-2个空格、打印1个*、打印3个空格、打印1个*、换行。
第3行需要打印a-3个空格、打印1个*、打印5个空格、打印1个*、换行。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/14047.html