#define 需要注意的事項
(高顯忠, sjgau4311@gmail.com, 2011-01-21 06:30)
1樓
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define pi 4.0*atan(1.0)
// 因為 沒有加上 括號,很容易 出現錯誤
int main()
{
double x, y, z, z1, z2;
// 60度角的 直角三角形,1:sqrt(3):2
x= 60.0;
y= sin(x/180.0*pi);
printf("y= %.6lf\n", y);// y= 0.866...
system("pause");
z= asin(y);
z1= z/pi*180.0;
z2= z/(pi)*180.0;
printf("z1= %.22lf, z2= %.22lf\n", z1, z2);
system("pause");
return(0);
}
(高顯忠, sjgau4311@gmail.com, 2011-01-21 10:37)
2樓
#define pi (4.0*atan(1.0))
是 字串的取代。
他,不是 事先把答案算出來,帶入。
他,是直接把 後面的字串
(4.0*atan(1.0))
取代 前面的
pi
所以,如果後面的程式行
y= x/pi*180.0;
就會變成
y= x/4.0*atan(1.0)*180.0;
所以,就錯掉 了