C语言两道简单习题,请大家帮忙详细解答下

不清楚二维数组单循环怎么赋值......p语句哪里应该是循环赋X吧,之后X=1,return3之后就不懂了。或许自己太笨了,想了好久也没明白,自己编译运行之后倒是知道了结... 不清楚二维数组单循环怎么赋值......
p语句哪里应该是循环赋X吧,之后X=1,return 3之后就不懂了。
或许自己太笨了,想了好久也没明白,自己编译运行之后倒是知道了结果,可是就是不知道它是怎么运行来的,请大家帮忙详细解答下过程,是如果得到的,谢谢!
谢谢LK同学,恩,我知道到二题||的意思,还有它是递归,自己调用自己,问题是return 3执行之后呢?那结果是3?第一题的结果是357,第二题的结果是7。可是这两个值是怎么来的呢?请大家详细说下,百度分无所谓,200都可以......
展开
 我来答
厘恋浅柠阳03
2015-06-12
知道答主
回答量:46
采纳率:0%
帮助的人:14.7万
展开全部
这个简单,if(x==0||x==1)是说如果,x=0 或者x=1两个条件只要成立一个,这个判断就成立,执行 return 3 如果都都不成立,则往下执行,会了吧

|| 这个是或符号,表示,只要有一个成立就为真 true 都不成立才为false

p=x-fun(x-2) 这里的fun(x-2) 是个递归调用

还是要学好基础知识,别基础的没学好。就像跑,跑不起来的
wang06998
推荐于2016-12-03 · TA获得超过5660个赞
知道大有可为答主
回答量:3755
采纳率:83%
帮助的人:2730万
展开全部

第一个,那不很明白吗?

第一次k=0,输出的是a[k][2-k]也就是a[0][2]

第二次k=1,输出的是a[k][2-k]也就是a[1][1]

第三次k=2,输出的是a[k][2-k]也就是a[2][0]

 

第二个,逐句翻译一下就懂了

int fun(int x)

{int p;

 if(x==0||x==1) return 3;    //如果x是0或1的话,返回值为int型的3

 p=x-fun(x-2);               //没执行return的话,这里才能执行。给p赋值x-fun(x-2)的返回值

 return p;                      //上一句计算出来的p是返回值

}

例如计算fun(9),先判断上面的if,条件不成立,所以执行p=9-fun(9-2),再返回p。

然后计算fun(7),先判断上面的if,条件不成立,所以执行p=7-fun(7-2),再返回p。

以此类推,直到计算fun(1),直接返回3。

图从下往上看。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式