C语言问题,菜鸟,求详解

以下程序的运行结果是:fun(intt[],intn){inti,m;if(n==1)returnt[0];elseif(n>=2){m=fun(t,n-1);retur... 以下程序的运行结果是:
fun(int t[],int n)
{ int i,m;
if(n==1) return t[0];
else
if(n>=2) {m=fun(t,n-1); return m;}
}
main()
{
int a[]={11,4,6,3,8,2,3,5,9,2};
printf(“%d\n”,fun(a,10));
}
展开
 我来答
百度网友e67036324
2012-09-09 · 超过12用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:43.2万
展开全部
结果为: 11
这是个递归调用的程序
运行到最后if(n>=2){m=fun(t,n-1)} 当n=2时n-1=1 在调用fun(int t[],int n)时满足if(n==1)
return t[0] 这时候t数组还是a[]数组 t[0]=a[0]=11
当m=fun(t,n-1)}不满足时 还是去调用函数fun(int t[],int n) 而不运行后面的return m,所以只有一个11
冬天279103446
2012-09-09
知道答主
回答量:7
采纳率:0%
帮助的人:1.2万
展开全部
结果是11
该程序返回的结果为return t[0];
测试程序如下
#include<stdio.h>
int fun(int t[],int n)
{ int m;
if(n==1) return t[0];
else
if(n>=2) {m=fun(t,n-1); return m;}
}
int main()
{
int a[]={11,4,6,3,8,2,3,5,9,2};
//printf("%d\n",fun(a,10));
for(int i=1;i<=10;i++)
printf("%d, ",fun(a,i));
}
输出 11 11 11 11 11 11 11 11 11 11 11
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
再改名我发火
2012-09-09 · TA获得超过189个赞
知道答主
回答量:128
采纳率:0%
帮助的人:140万
展开全部
这个程序怎么了,你想解决什么问题
追问
·····
当然就是题目问的问题
追答
在我的机子上结果是11
也就是返回数组的第一个元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式