思勤无邪

上学时,因我年龄最小,个头也最小,上课时,就像大猩猩堆里的猴一般。如今,这猴偶尔也把最近的一些情况写在这里。

   :: 首页 :: 联系 :: 聚合  :: 管理
  132 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

公告

     吾日常三省吾身,曰思、曰勤、曰无邪。

积分与排名

  • 积分 - 157338
  • 排名 - 142

最新随笔

最新评论

阅读排行榜

评论排行榜

 1 /*利用星号输出画一个任意大小的圆*/
 2 #include <math.h>
 3 #include <stdio.h>
 4 
 5 int max(int a, int b)
 6 {
 7     return a > b ? a : b;
 8 }
 9 
10 void print_char(int x1, int x2)
11 {
12     int i;
13     // 计算这一行的宽度,终端最多显示80列
14     int n = max(x1, x2) + 1;
15     n = n > 80 ? 80 : n;
16     for (i = 0; i < n; i++)
17     {        
18         if (i == x1 || i == x2)
19             printf("*");
20         else
21             printf(" ");
22     }
23     printf("\n");
24 }
25 
26 void print_circle(int r)
27 {
28     int x1, x2, y;
29     int d = 2 * r;
30     int offset;
31     for(y = 0; y <= d; y++)
32     {
33         /*终端字符宽高比为2:1*/
34         offset = (int)(0.5 + sqrt((double)(r*- (y-r)*(y-r)))*2.0);
35         x1 = d - offset;
36         x2 = d + offset;
37         print_char(x1, x2);
38     }
39 }
40 
41 int main(int argn, char *argv[])
42 {
43     int r = 5;
44     if (argn > 1)
45         r = atoi(argv[1]);
46     
47     print_circle(r);
48     return 0;
49 }
50 

posted on 2010-10-16 23:41 思勤无邪 阅读(1407) 评论(1)  编辑 收藏 引用 所属分类: C++

Feedback

# re: 网上看到的一个面试题:利用星号输出画一个任意大小的圆 2011-04-11 19:12 王秋林
这个程序不太懂他的意思??
能否讲解下?谢谢  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理