问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言:函数递归应用,不知道哪里错误1

发布网友 发布时间:2023-11-17 00:39

我来回答

3个回答

热心网友 时间:2024-01-17 18:22

#include <stdio.h>

float abc(int);

int main()
{
float z;
int x;
printf("请输入阶乘数\n");
scanf("%d",&x);
z=abc(x);
printf ("%f",z);
return 0;
}

float abc(int n)
{
float y;
if (n==0||n==1)
y=1.0;
else y=abc(n-1)*n;
return (y);
}

错得好多,递归也没有没有返回条件
另外用float精度很低,算到20就有截取误差了追问谢谢,我是初学者,那是应该用double吗?另外递归那里你也没做多大修改,什么叫递归的返回条件

追答double 算到30也不准了,不过题目关键联系算法,无所谓了

按你的程序原来的意思就是用递归的方式去计算阶乘
按照阶乘的递归定义 n!=n*(n-1)!,那么计算下去
但是这个定义不严谨,还缺个条件就是0!=1,那就是返回的条件

你要算n!的阶乘,那么就要知道(n-1)!的阶乘,
然后你又得先找(n-2)!,那么找下去就无穷无尽了,必须有个条件然它找到头

所以你得规定0!=1,那么程序在找到0!阶乘的时候就结束递归,一个层层返回计算

热心网友 时间:2024-01-17 18:23

注意 float abc(int x);声明,放到main外面。
修改如下。再rebuild重现完全编译一下。

#include <stdio.h>

float abc(int x);
int main()
{
float z;
prtinf("请输入阶乘数");
scanf("%d",&x);
z=abc(x);
pritf ("%f",&z);
return 0;
}
float abc(int n);
{
float y;
if (y==0||y==1)
printf ("error");
else y=abc(n-1)*n;
return (y);
}

热心网友 时间:2024-01-17 18:23

好多错误,怎么只有一个

1、float abc(int x)函数声明应该放到main函数外面

2、printf拼写错误
3、pritf ("%f",&z);应该写成printf("%f",z);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
不干胶印刷设备多少钱一套 小型不干胶印刷机价格 什么是走水运 水路的特点是什么 疯狂僵尸机游戏怎么玩,植物大战僵尸高清版怎么玩 植物大战僵尸2 植物大战僵尸2戴夫最好的朋友是谁? 怎么下载疯狂的戴夫游戏 游戏下载地址 小红书数据分析工具推荐 三分钟做好一张小红书封面,不同平台超好用的高效率工具你造吗_百度知... 网球王子的剧场版都有哪些啊 网球王子剧场版:英国式庭球城决战DVD情报 手机号注册了一个微信,之后这个手机号又被另一个绑定,然后注册的... 装修后怎么快速除甲醛 乌兰察布昌兴会计服务有限公司怎么样? 腾讯混元助手内测申请需多长时间 男生生日礼物排行榜是怎样的?1023 23年天津市最低工资标准 奉化小黄车为什么不能骑到尚田了 在男女系说的881是什么意思?29 二级建造师水利水电工程管理与实务怎么学习56 C语言递归求阶乘求改错4 新楼 高层 厕所 反味 无论南北窗户开哪一面厕所都反味。都开... 我的被人盗了,我自己又新注册了一个号,怎么去把之前的那个号等... 新申请的封了是什么情况 ...忧伤的华丽&#xFEFF;&#xFEFF;&#xFEFF;——浅析电影《花样年华》的色彩越用_百度知... 《漫威中的联盟系统》txt下载在线阅读全文,求百度网盘云资源_百度知 ... 二级建造师水利水电如何,好考吗?需要如何才考得过9 c语言中求一个数的阶乘之和,(用函数模块化),这是哪里错了?3 广告学的就业前景怎样11 mtk6601手机多少钱 耳顺之年又叫什么 C语言,输入十个数,分别求他们的阶乘,哪里错了?? 如图所示,水平桌面上的轻质弹簧左端固定,右端与静止在O点的小物块接触... i5 4590配gtx660和r9270哪张好? 关于撒哈拉以南非洲的叙述,正确的是 ... 淘宝在两家店,买了同款的衣服。分别退货,退货的时候两件衣服一... 我的被盗了,重新注册了,怎么恢复微信,找回以前的微信好友和重要信... 奥迪汽车的仪表盘上的时间怎么调整? 奥迪T T仪表盘上的日期怎么调整?2 colse英语什么意思 这配置玩英雄联盟(LOL)卡吗 用手机号码注册了,后来又用手机号绑定了另一个,怎么才能登 ... 一年内怎么改第二次 我的手机是MTK6601的 为什么这款手机会自动拨打1259...2 男人梦见蛇是什么意思543 用手机号申请的,现在手机号又绑定了另一个,之前那个就登不... 我刚买了一款手机是索爱的 貌似是MTK-6601可是我上网下...6 怎样改才有意义? 梦见蛇有两条尾巴代表什么意思啊?。。。。。。。。。24 晋中兴瑞会计服务有限公司怎么样? 通辽市鲁兴煤业有限公司怎么样?