美国上市公司

亿元级外企IT培训企业

  • 全国服务监督电话400-111-8989
IT培训 > 资料库 > 记录打印椭圆的有趣过程
  • 记录打印椭圆的有趣过程

    发布:IT培训 来源:资料库 时间:2014-12-29

  • 记得大一刚学C语言的时候,书后有道打印三角形的题,记得当时做了一个多小时才做出来,相信大家初学编程也做过类似的问题,今天突发奇想想打印个特殊曲线,于是把目标锁定为打印一个椭圆,大家都知道编程语言打印输出一个图形,如果它是单调递增或者单调递减是非常容易的,如果非单调的函数就得费一些周折。椭圆不是单调函数应该怎么快速打印呢首先因为圆是特殊的椭圆,所以我们先想想如何打印圆形,我们可以先想把圆分成1/4,一个1/4圆当然是单调的嘛,利用x*x + y*y = r*r这个圆的标准方程打印输出,代码如下:

    [cpp] view plaincopyprint?

    #include

    int main()

    {

    int R = 10;

    int x,y;

    for(y = 0; y <= R; y++)

    {

    for(x = 0; x <= R; x++)

    {

    if(x*x + y*y < R*R)

    printf("*");

    else

    printf(" ");

    }

    printf("\n");

    }

    }

    #include

    int main()

    {

    int R = 10;

    int x,y;

    for(y = 0; y <= R; y++)

    {

    for(x = 0; x <= R; x++)

    {

    if(x*x + y*y < R*R)

    printf("*");

    else

    printf(" ");

    }

    printf("\n");

    }

    }

    打印结果:

     

    诶妈呀,咋出个这个畸形?我们仔细看会发现,原因是圆的行间距和列间距不同造成的,解决方法是把打印一个星'*',改成打印两个星'**'就成了,代码如下:

    [cpp] view plaincopyprint?

    #include

    int main()

    {

    int R = 15;

    double x,y;

    for(y = 0; y <= R; y++)

    {

    for(x = 0; x <= R; x++)

    {

    if(x*x + y*y < R*R)

    printf("**");

    else

    printf(" ");

    }

    printf("\n");

    }

    return 0;

    }

    #include

    int main()

    {

  • 上一篇:C语言 条件编译详解

    下一篇:copy构造隐藏的陷阱

2001-2016 达内时代科技集团有限公司 版权所有 京ICP备08000853号-56