直接上代码
#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;
}