#include<stdio.h>
#include<math.h>
int main()
{
double r,a,b,x1,y1
int i//将循环变量设置为整型
scanf("%lf,%lf,%lf",&a,&b,&r)//圆心和半径是double型用%lf接收,注意输入格式,数与数之间用英文逗号隔开
for(i=1i<=360i++)
{
x1=a+r*cos(i*3.141592/180)//"/"两边除数和被除数都为整型则结果为整型影响最后结果
y1=a+r*sin(i*3.141592/180)
printf("(%lf,%lf)\n",x1,y1)//输出依然用%lf
}
return 0
}
答案并没有计算错误。你的程序中计算的d1~d4,分别是点到四个圆心的距离的平方。当点到圆心的距离大于1时,自然距离的平方也是大于1的。所以在这个特殊的问题中,不再求平方根也是可以的。
#include <math.h>#include <stdio.h>#define R 10 //半径 #define X 10 //圆心x坐标 #define Y 10 //圆心Y坐标 int main(void){ int x,y int m int i for(i=Y-Ri>=1i--)
{ printf("\n")
}
for(y=Ry>=-Ry--)
{
m=2*sqrt(R*R - y*y) //横坐标的偏移量,因为字体长宽比例为2,所以要乘2
for(x=1x<X+R-mx++) //打印左半圆
{ printf(" ")
} printf("*") for(x<X+R+mx++) //打印右半圆
{ printf(" ")
} printf("*\n")
}
}