サブ関数間の相互呼び出し
1244 ワード
:
double f1(int n, double a[], double x){} 1
double Get_Run_Time(double (*f)(int, double *, double)){ 2
(*f)(MAX, a, 1.1);
}
printf("Run time of f1: %.2e sec
", Get_Run_Time(f1));//main
printf("Run time of f1: %.2e sec
", Get_Run_Time(f1));// f1
printf("Run time of f2: %.2e sec
", Get_Run_Time(f2));// f2
double f1(int n, double a[], double x)
{
int i;
double p = a[0];
for(i = 1; i <= n; i++){
p += a[i] * pow(x, i);
}
return p;
}
double f2(int n, double a[], double x)
{
int i;
double p = a[n];
for(i = n; i > 0; i--){
p = a[i - 1] + x * p;
}
return p;
}
double Get_Run_Time(double (*f)(int, double *, double))// , ,
{
clock_t start, stop;
int i;
start = clock();
for(i = 0; i < 100000; i++){
(*f)(MAX, a, 1.1);
}
stop = clock();
//printf("%f
%f
", (double)start, (double)stop); // : clock_t , double
return (double)(stop - start) / CLOCKS_PER_SEC / 100000; // CLOCKS_PER_SEC 1000
}