C言語の解説の演習の解答(第8回)


演習の解答


解答は次のようになります.

#include <stdio.h>

#define N 5

int x0,a[N+1],fk,xk,i,fx;

main()
{
  void nyuryoku();
  void keisan();
  void hyouji();

  nyuryoku();
  keisan();
  hyouji();

}

void nyuryoku()
{
  printf("x0=");
  scanf("%d",&x0);
  for (i=1;i<=N+1;i++) {
    scanf("%d",&a[i-1]);
  }
}

void keisan()
{
  fk = 0;
  xk = 1;
  for (i=1;i<=N;i++) {
    fx = fx+i*a[i]*xk;
    xk = xk*x0;
  }

}

void hyouji()
{
  printf("f'(x0)=%d¥n",fx);
}


上のプログラムを理解する上で、次の2点を補足説明しなければなりません.
(1)変数は全てグローバル変数として宣言しました.これは「第九回の解説」に有るような問題を避けるためです.グローバル変数についての説明は「第九回の解説」を見てください.
(2)関数 nyuryoku, keisan, hyouji は void 型の変数を返す関数として定義されていますが、これは何も値を返さない関数のことです.BASIC のサブルーチンは全て何も値を返しませんから、関数 nyuryoku, keisan, hyouji をこのように定義しました.
後はこれまで習ったことから分かるはずです.C言語では、配列の添え字は 0 から始まることに注意してください(「第五回の解説」参照)

C言語の解説と演習
(第8回)へ行く
   
C言語の解説と演習
(第9回)へ行く

このページに関する質問は kitamoto@edu.yamaguchi-u.ac.jp