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

2024-11-19 08:21:53
推荐回答(3个)
回答(1):

结果为: 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

回答(2):

结果是11
该程序返回的结果为return t[0];
测试程序如下
#include
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

回答(3):

这个程序怎么了,你想解决什么问题