
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));
} 展开
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));
} 展开
3个回答
展开全部
结果为: 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
这是个递归调用的程序
运行到最后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
展开全部
结果是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
该程序返回的结果为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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个程序怎么了,你想解决什么问题
追问
·····
当然就是题目问的问题
追答
在我的机子上结果是11
也就是返回数组的第一个元素
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询