ANSI C の関数プロトタイプを用いたプログラム |
#include <stdio.h> #define N 100 int main() { int j; double a[N+1], F(double); printf("a[0]: "); scanf("%lf", &a[0]); for (j = 0; j < N; j++) { a[j+1] = F(a[j]); printf("a[%d]=%g\n", j+1, a[j+1]); } return 0; } double F(double x) { return 0.25 * x + 1.0; } |
ところが、残念なことに、 が大きいときには、このプログラムの書き 方はあまり良くない。配列 a[] を記憶するために大きなメモリーが必 要になってしまう。そこで、次のようなプログラムを書くのが普通である。
配列を用いず、変数を書き換えて済ますプログラム |
#include <stdio.h> #define N 100 int main() { int j; double a, F(double); printf("a[0]: "); scanf("%lf", &a); for (j = 0; j < N; j++) { a = F(a); printf("a[%d]=%g\n", j+1, a); } return 0; } double F(double x) { return 0.25 * x + 1.0; } |