不同数据类型之间的运算

//#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)时,结果依然是错误的。

你知道为什么会这样吗?

点赞