C语言 用递归方法求n!为什么答案后面会出现乱码 10

非负数的答案没什么问题但是输入负数的结果后面会出现一些乱码... 非负数的答案没什么问题 但是输入负数的结果后面会出现一些乱码 展开
 我来答
清亮还勤恳灬大熊猫P
2016-10-25 · TA获得超过1096个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:94万
展开全部
你的jiecheng函数定义n的时候没有初始化,也就是说定义以后是存储n的那个位置内存之前的值,是个垃圾数据。
当你输入一个负数的时候,jiecheng函数发现j<0,于是没有为n赋任何值,就跑到了return n;那一句。
最后,你的主函数也要求输出jiecheng的返回值,这个时候返回的自然是n。而之前说过,n在没有赋值的时候保存的是一个垃圾数据。
所以输出的这个就是n保存的垃圾数据!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2016-10-25 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7910万
展开全部
每个if或else后面都加上return n试试,用{}括起来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2016-10-25 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:2亿
展开全部
这个乱码是n未经赋值所致。
把第12行改为
int n=j;
试试?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式