函数具备递归性质,才能写出递归程序,很明显f(x)=x不成,比如阶乘就可以
创新互联是一家专业提供济水街道企业网站建设,专注与网站设计制作、成都做网站、H5开发、小程序制作等业务。10年已为济水街道众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
f(x)=1*2*3*...*x
可以具备递归定义:
/
1(x=0,1)
f(x)=|
x
*
f(x-1)
(x1)
x为正整数
则程序如下:
int
fact(int
x){
if(x==0||x==1)return
1;
else
return
x*fact(x-1);
}
void main(){
int x;
float fx;
start:
printf("请输入x值(x值大于或等于0):");
scanf("%d",x);
if(x0)
goto start;
fx=x*x+1.0/x+sqrt(x);
printf(fx=%.3lf\n",fx);
}
#include
#include
/*要使用正余弦函数必须包含math.h头文件*/
#define
pi
3.14
double
f(x){
return
sin(pi*x)+log(x);/*sin和log函数内的参数均为double类型*/
}
void
main(){
double
x;
double
result;
printf("please
enter
the
value
of
x:");
scanf("%lf",x);
result=f(x);/*调用f(x)函数求值*/
printf("the
result
of
sin(π*%ld)+log(%ld)
is:%ld",x,x,result);
}
#include "stdio.h"
float FX(float x){
x-=1;
return x*x;
}
int main(int argv,char *argc[]){
float x;
printf(" x y\n============\n");
for(x=-2;x=2;x+=0.2)
printf("%.2f\t%.2f\n",x,FX(x));
printf("\n");
return 0;
}
运行结果: