#include   int f(int t[],int n);   main   { int a[4]={1,2,3,4},s;   s=f(a,4);

printf("%d\n",s);}intf(intt[],intn){if(n>0)returnt[n-1]+f(t,n-1);elsereturn0;求解题过程和答案... printf("%d\n",s);}
 int f(int t[],int n)
  { if(n>0) return t[n-1]+f(t,n-1);
  else return 0;
求解题过程和答案
展开
 我来答
宝帅期
推荐于2016-03-05
知道答主
回答量:24
采纳率:0%
帮助的人:16.9万
展开全部
这是一个用递归求数组之和的题目.实际上就是 s= 4+3+2+1 = 10;

int f(int t[],int n);
main()
{
int a[4]={1,2,3,4},s;
s=f(a,4);
printf("%d\n",s);
}

int f(int t[],int n)
{
if(n>0)
{
printf("%d %d\n",t[n-1],n);
return t[n-1]+f(t,n-1);
}
else
return 0;
}
更多追问追答
追问
能不能介绍一下详细的解题过程啊?就一个答案看不懂啊!拜托了
追答
递归的思想就是自己调用自己,我觉得那个int f(int t[],int n)函数
已经很详细了,可能是你对递归的思想没有理解,那个函数在调用自己的过程中,n的值是不断变化的,
数组是每次都一样的,第一次调用n=4,t[4-1] +f(t,3),那么下次进入f函数就变成n=3,t[3-1]+f(t,2),....,依次类推,知道n=0时,递归结束,实际整个调用就变成s=t[3]+t[2]+t[1]+t[0] = 4+3+2+1 = 10
野生紫罗兰zj
2011-10-29
知道答主
回答量:37
采纳率:0%
帮助的人:27.2万
展开全部
你的题不是很明确,能不能写的清楚些,题目是要问什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式