C语言 递归方法求数组的最大值 5

数组是已知的十个数的。最好用最简单的思想……最好还有注释……谢了。... 数组是已知的十个数的。最好用最简单的思想……最好还有注释……谢了。 展开
 我来答
吉祥二进制
高粉答主

2015-05-25 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84579

向TA提问 私信TA
展开全部
  #include <stdio.h>
  int max(int arr[], int len)
  {
  if(1 == len) // 只有一个元素
  {
  return arr[0];
  }
  int a = arr[0]; //第一个元素
  int b = max(arr + 1, len - 1); //第二个元素起的最大值
  return a > b? a : b;
  }
  int main(void)
  {
  int a[] = {1,2,3,4,5,6,7,8,9,10};
  printf("最大值:%d\n", max(a, sizeof(a) / sizeof(a[0])));
  return 0;
  }

心中时S
2011-12-18 · TA获得超过1051个赞
知道小有建树答主
回答量:501
采纳率:0%
帮助的人:271万
展开全部
int max(int*a,int len)
{
if(len==1)return a[0];
//max(a,len-1)返回数组前len-1个数中的最大数,并和a[len-1]比较,返回较大者
return a[len-1]>max(a,len-1)?a[len-1:max(a,len-1);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1c400cd
2011-12-18 · TA获得超过765个赞
知道小有建树答主
回答量:419
采纳率:100%
帮助的人:317万
展开全部
int max(int arr[], int len)
{
if(1 == len) // 只有一个元素
{
return arr[0];
}
int a = arr[0]; //第一个元素
int b = max(arr + 1, len - 1); //第二个元素起的最大值
return a > b? a : b;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a9aac05dc
2011-12-18 · TA获得超过139个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:134万
展开全部
编译通过
#include <stdio.h>

int max(int *arr,int maxnow)
{
int i,temp = maxnow;
for(i=0;i<10;i++)
if(arr[i] > maxnow)
maxnow = arr[i];
if(temp == maxnow)
return maxnow;
else
return max(arr,maxnow);
}
int main(void)
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
printf("%d",max(arr,arr[0]));
getchar();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式