| 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;
}
|