美国上市公司
亿元级外企IT培训企业

400-111-8989

热门课程

记录打印椭圆的有趣过程

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

记得大一刚学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构造隐藏的陷阱

java技术有哪些优点优势

选择城市和中心
贵州省

广西省

海南省

台湾