C语言输出菱形

来源:互联网 发布:dbcp连接池配置 mysql 编辑:程序博客网 时间:2024/06/03 02:20

问题:用C语言输出下面的图形




一般的解法是设菱形的中心为坐标原点,然后用嵌套的for循环输出,但这种方法需要很多的分析。如果用递归的角度考虑问题,将会得到很大的简化。


#include <stdio.h>void printLine(int space,int star){    int i;    for(i=0;i<space;i++){        putchar(' ');    }    for(i=0;i<star;i++){        putchar('*');    }    putchar('\n');}void draw(int space,int star){    if(space==0){        printLine(space,star); //输出最长的行,此时空格数为0    }    else{        printLine(space,star);        draw(space-1,star+2); //下一行空格减少1个,星号增加2个        printLine(space,star);    }}int main(){    int n;    scanf("%d",&n);    draw(n-1,1);//第一行有n-1个空格,1个星号    return 0;}



0 0
原创粉丝点击