高校生でC言語でプログラミングを学んでいます。
先日学校で、以下のような課題が出ました。
以下を満たすプログラムを完成させよ。
(1) 引数 x (double型)と n (int型)を与えて x^n の値を返すdouble型の関数 powerを定義。
(2) 引数 x (double型)と n (int型)を与えて x^n の微分係数((x^n)’の値,n x^(n -1)を計算してxの値を入れる)を返すdouble型の関数 diff を定義。ただし(1)の関数powerを呼び出して使うこと。
(3) main関数で 値 x と n を入力させ,関数 power と diff を呼び出し,それぞれの値を例のように表示させる。
(注) 数学用ライブラリ関数(math.hのpowなど)は使えないとする。
<実行例>
x を 入力してください: 4.2
n を 入力してください(n>0): 5
x^n = 1306.912320
(x^n)' = 1555.848000
(1)は自分でできました。お聞きしたいのは(2)です。
まず、「ただし(1)の関数powerを呼び出して使うこと。」とありますが、違う計算をするのになぜ呼び出すのですか?呼び出す意味はありますか?
#include <stdio.h>
double power(double x, int n) {
double y = 1;
for (int i = 1; i <= n; i++)
y = y*x;
return y;
}
int main() {
double num1 = 0;
int num2 = 0;
double d = 0;
printf_s("xを入力してください\n>");
scanf_s("%lf", &num1);
printf_s("nを入力してください(nは自然数)\n>");
scanf_s("%d", &num2);
d = power(num1, num2);
printf_s("%f^%d = %f です。\n", num1, num2, d);
return 0;
}