関数f(x) = 7x^4-5x^3+3x
を関数形式マクロと自作関数の2通りで作成し、
以下のようにa+bを代入して計算すると、計算結果が異なります。
c
1#include<stdio.h> 2#include<math.h> 3 4// 関数形式マクロ 5#define f(x0) (7.0 * pow(x0, 4.0) - 5.0 * pow(x0, 3.0) + 3.0 * x0) 6 7// 自作関数 8double f_x(double x0) { 9 double fx0; 10 fx0 = 7.0 * pow(x0, 4.0) - 5.0 * pow(x0, 3.0) + 3.0 * x0; 11 return fx0; 12} 13 14int main(void) { 15 double a = 1.99; 16 double b = 0.01; 17 printf("f(a+b) = %f, f_x(a+b) = %f\n", f(a + b), f_x(a + b)); 18 return 0; 19} 20}
結果
f(a+b) = 77.980000, f_x(a+b) = 78.000000
なぜ計算結果が異なるのかわかりません。ご教授お願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。