这个c程序有什么地方出错了?

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:23:27
#include "stdafx.h"

double f1 (double x){
return 1.0+1.0/(1.0+1.0/x);
}
double f2 (double n){
return n==1.0?f1:1.0+1.0/f2(n);
}

int main()
{
double x=0.0;
double n=0.0;

scanf("%lf,%lf",&x,&n);
printf("x=%f,n=%f,f(x)=%f",x,n,f2(n));
return 0;
}

#include "stdafx.h"

double f1 (double x){
return 1.0+1.0/(1.0+1.0/x);
}
double f2 (double n)
{
return n==1.0?f1:1.0+1.0/f2(n); //要把"f1"改为"f1(n)"
}

int main()
{
double x=0.0;
double n=0.0;

scanf("%lf,%lf",&x,&n);
printf("x=%f,n=%f,f(x)=%f",x,n,f2(n));
return 0;
}

定义在main里的x和n不能用在f1和f2里。也就是说你f2里使用了函数f1,但f2里没有给定double x的值。