//#define pi 4.0*atan(1.0)
int main()
{
int n;
const double pi = 4.0*atan(1.0);
scanf("%d", &n);
printf("%lf %lf", sin(n*pi/180.0),cos(n*pi/180.0));
//printf("%f %f", sin(n), cos(n));
}
上述代码功能:输入角度,输出对应的sin和cos值。需要注意的是pi的两种表示方式(第一行和第五行)。
其实在此之前我声明的是double n,导致了结果的错误。当我将double n改为int n时结果正确。错误的原因并不是运算先后顺序问题,当我将sin(n*pi/180.0)改成sin((n*pi)/180.0)时,结果依然是错误的。
你知道为什么会这样吗?