函数c语言递归调用错误 c语言递归调用的条件

C语言 函数递归调用错误

你这毛病太多!!

成都创新互联公司主要从事网站设计制作、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务商洛,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

首先没看明白你的

主函数

怎样调用的change

函数

再者函数

参数

不够详细啊!!光有一个参数是不够的,还得有个

数组

下标

作参数,好能表示你的

字符

要存到数组的哪个元素里。主函数中调用函数时用

change(num,0,)

下面按照你的

大体

思路

,给你答案。

#includestdio.h

char

a[26];

void

main()

{

int

change(long,int);

long

num;

scanf("%ld",num);

a[change(num,0)]='\0';

printf("%s\n",a);

}

int

change(long

num,int

p)

{

int

i,n;long

x,f;

n=p;

if(n==0num0)

{

a[n]='-';

n++;

num*=-1;

}

if(num10)

{a[n]='0'+num;return

1;}

else

{

x=num;f=1;

while(x9)

{

x=x/10;

f=f*10;

}

a[n]='0'+x;

printf("%d\n",x);

n++;

num=num-x*f;

}

return

change(num,n)+n-p;

}

C语言 函数递归调用错误

递归函数有三点要求:

1,递归的终止点,即递归函数的出口

2,不断的递归调用自身

3,递归函数主体内容,即递归函数需要做的事情

ps:3一般可以放在2的前面或者后面,一般1放最前面。另外,2和3可以根据不同的需要合并,比如,有时候递归函数的主体就是返回调用下层函数所得到的结果。

具体例子如下:

void fun(int n)

{

if(n=0) return; //1 这是递归的终点,即出口

fun(n-1); //2、递归函数自身的调用

coutnendl; //3 递归函数的主体内容

}

2,3合并的情况

int fun(int n)

{

if(n=0) return 0;

return fun(n-1)+fun(n-2); //2 3合并

}

c语言递归函数,程序写出来运行错误,不知如何调试设计函数求π:π/4=1-1/3+1/5-1/7+…

这样改。

#includestdio.h

float PI(int x)

{

if(x=0) return(0);

else

{

if(x2) return(0);

else

return(PI(x-2)+(1.0/(2*(x-1)-1)-1.0/(2*x-1)));//改成1.0 否则默认取整

}

}

void main()

{int x;float y;

printf("input a number:");

scanf("%d",x);

if(x%2==0)

y=PI(x);

else

y=PI(x-1)+1.0/(2*x-1);//1.0

printf("PI=%f\n",y*4);//y*4不是y/4

}


网站题目:函数c语言递归调用错误 c语言递归调用的条件
转载源于:http://ybzwz.com/article/ddedidp.html