上学的小白 2022-01-13 16:45 采纳率: 85.7%
浏览 33
已结题

不太懂为什么这段代码的结果 ,求分析让我理解一下


int f(int a[],int n)
{if(n>=1) return f(a,n-1)+a[n-1];
else return 0;
}
void main()
{ int aa[5]={1,2,3,4,5},s;
 s=f(aa,5);
 printf("%d",s);
}
  • 写回答

2条回答 默认 最新

  • 陆宇杭 2022-01-13 16:54
    关注

    就是通过函数迭代的方式去求数组的所有元素和。第一次代入f(aa,5),return的是f(a,4)+a[4]。 然后f(a,4)就是f(a,3)+a[3],不断迭代,直到n为0,最后结果就是a[4]+a[3]+a[2]+a[1]+a[0]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日