C语言为什么这样不行

C语言为什么这样不行有两个问题,第一个if语句用{}隔起来为啥不行?第二个问题,分析整个程序第二张图整个程序由递归函数构成,举个简单列子x=2,m=3。x1=2,n=3递... C语言为什么这样不行有两个问题,第一个if语句用{}隔起来为啥不行?第二个问题,分析整个程序第二张图
整个程序由递归函数构成,举个简单列子x=2,m=3。x1=2,n=3递归形式如下
p(1) n=1 y=x1=2
p(2) n=2 ((2*2-1)*2*p(1)-(2-1)*p(0))/2
(3*2*2-1*1)/2=5.5
p(3) n=3 ((2*3-1)*2*p(2)-(3-1)*p(1))/3
(5*2*5.5)-2*2)/3=17!递归完毕答案是17
就是有点看不懂,不理解if else语句在这里递归的用法
展开
 我来答
风若远去何人留
2018-02-09 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部

第一个 if后面必须有条件。 不能留空。 这个去掉大括号也是不行的。 

和第二个对比,不仅是大括号的区别 更重要的是第一个多了一个if。

至于第二个, 对应关系是

起到n=0  y=1  

n=1 y=x1

其他的 调用递归公式。

更多追问追答
追问

我这个又是哪里错了,正确答案应该是154啊
ouyang1917
2018-02-09 · TA获得超过237个赞
知道小有建树答主
回答量:529
采纳率:66%
帮助的人:169万
展开全部
你的if语句可能不规范 第一个if语句最好有个{} 否则就可能配对错误原理上说 if与自己离最近的else配对 可你的第一个if与最后一个else容易配对错误
递归就是找到第一个有数字的 在返回上一层 慢慢到最顶层
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sjalnd
2018-02-09 · TA获得超过278个赞
知道小有建树答主
回答量:212
采纳率:71%
帮助的人:47.7万
展开全部
else的含义是不成立则进入的情况,里面再加一个if是第二次判断了,也要加一个判断句,如果没有判断是不用加if的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式