永发信息网

C语言函数调用,递归调用问题

答案:1  悬赏:60  手机版
解决时间 2021-04-24 22:55
float P(float n,float x){float f; if(n==0) f=0; else if(n==1) f=x; else if(n>=1) f=((2*n-1)*x-P((n-1),x)-(n-1)*P((n-2),x))/n; return(f);} #include void main() {float n;float x; scanf("%f,%f",&n,&x); printf("p=%f\n",P(n,x));}错在哪儿呢,n=0的时候输出正确,其他都不对
最佳答案

不明白你说的不对是指怎么不对,最好附个理想输入输出和实际输出上来。


但是强烈建议你把n换成int型,表达式中必要的地方可以强制转换。


浮点型在运算中值会失真,也就是说2.0-1不太可能等于1.0,而是1.99999997一类的数字,只是标准输出函数在输出时进行了保留一定小数位数的转换你看不出来而已,你的表达式中有“.../n ” 的部分,这样必然造成误差。


另外请你确认你的递归表达式是符合你要求的没有写错。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ华夏,里面怎样弄只完美没有合过的龙呀?
心慌无法控制是怎么回事
做美甲什么牌子的光疗机好用
CF8月20-22日杀敌数活动,奖品什么时候发啊?
我未结婚生有小孩,不知道上户口要不要罚。我
广东联通信息中心号码是多少?
四川警察学院应用心理学怎么样
超级QQ高级的比普通的好在哪?
大学生活怎么样不无聊啊
生活过得很累的句子,形容日子过得辛酸苦楚得
怎么免费点亮腾讯公益图标
为什么我会胖
过五天不来会怀孕吗
世博会面试需要哪些准备?
功夫小子冰剑密连有哪些
推荐资讯
Q点能换Q币吗
期字五笔怎么打,打字怎么打出时间日期
如何戒掉相思情?
手机问题如何解决?
介绍一下有关球类运动的日本动画片?(比如篮球
怎么用UC在手机上挂刷?急!急!
如何才能去美国打工,怎么可以去美国工作
51361如何理解,有什么意思,说说你的想法,仁
在现实生活中我们应该怎么看待阿Q精神,我的
酸酸甜甜人生的历程喜喜乐乐放飞心情歌名是什
电话银行密吗丢失,原先银行卡密吗是否还有效
哈尔滨东林建筑工程有限公司地址在什么地方,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?