打印圆可利用图形的左右对称性。根据圆的方程:
R*R=X*X+Y*Y
可以算出圆上每一点行和列的对应关系。
代码如下:
- #include <stdio.h>
- #include <math.h>
- int main(int argc, char *argv[])
- {
- double y;
- int x,m;
- for(y=10; y>=-10; y--){
- m = 2.5 * sqrt(100-y*y);
- for(x=1; x<30-m; x++)
- printf(" ");
- printf("*");
- for(; x<30+m; x++)
- printf(" ");
- printf("*\n");
- }
- return 0;
- }
执行代码如下:
$ gcc 3.c -lm
$ ./a.out
阅读(3751) | 评论(0) | 转发(0) |