直接上代码
- #include<stdio.h>
- #include<math.h>
-
- int InTheCircle(int x, int y, int r)
-
- {
- /*将(x,y)转换为相当圆心(r,r)的坐标*/
- int rx = x - r;
- int ry = y - r;
- double d = sqrt(rx*rx + ry * ry) - r;/*计算到圆心的距离*/
-
- if (fabs(d) < 0.2)/*判断到圆心的距离是否为r(允许0.2的误差,看着更像)*/
- return 1;
- else
- return 0;
- return (int)d;
- }
-
- void Print(int r)
-
- {
- int x, y;
-
- for (y = 0; y < 2 * (r + 1); y++)
- {
- for (x = 0; x < 2 * (r + 1); x++)
- {
- if (InTheCircle(x, y, r))/*如果这个点在圆上,打印'*',否则,打印' '*/
- printf("*");/*因为字符高比宽大,所以加一个空格调整外观*/
- else
- printf(" ");
- }
-
- printf("\n");
- }
- }
-
- int main() {
- int r;
- printf("输入圆半径\nr=");
- scanf("%d", &r);
- Print(r);
-
- return 0;
-
- }
-