为什么我的返还值不是我定的值,返还的都是0?

#include <stdio.h>

double f(int n,double i)

{

i*=n;

n--;

printf("%lf\n",i);

if(n==0)

{

return i;

}

f(n,i);

}

int main(int argc, char *argv[])

{

int n,m,s=0,s2=0,s3=0;

char A[100];

double x;

scanf("%d%d",&n,&m);

printf("%.4f",f(n,1.0));

//printf("%.4f",1/f(n,1.0)+1/f(m,1.0));

return 0;

}

慕仰7464091
浏览 2046回答 3
3回答

qq_缘定三生石

因为你的递归函数运行到最后i总是0

慕仰7464091

把第11行改成return f(n);就好了

慕仰7464091

那啥,问题我可以解决,我想知道我上面那错了
打开App,查看更多内容
随时随地看视频慕课网APP