编写一个递归算法,求长度为n的一维数组中的最大元素。

谢谢啊。... 谢谢啊。 展开
 我来答
濯名潜阳辉
2019-07-24 · TA获得超过3564个赞
知道大有可为答主
回答量:3024
采纳率:29%
帮助的人:449万
展开全部
楼上的代码写得有点繁琐,其实一个简单的if结构就可以实现这个递归。
#include
<iostream>
using
namespace
std;
int
max(int
[],int);
//
max函数原型
int
main()
{
int
a[10]={1,3,8,2,4,9,5,7,6,0};
cout
<<
"a数组最大元素为:"
<<
max(a,10)
<<
endl;
return
0;
}
int
max(int
arr[],
int
size)
//
max函数定义
{
if
(size
==
2)
return
arr[0]
>
arr[1]
?
arr[0]
:
arr[1];
else
return
max(arr,size
-
1)
>
arr[size
-
1]
?
max(arr,size
-
1)
:
arr[size
-
1];
}
xrhigh
推荐于2016-04-14 · TA获得超过1495个赞
知道小有建树答主
回答量:657
采纳率:0%
帮助的人:840万
展开全部
楼上的代码写得有点繁琐,其实一个简单的if结构就可以实现这个递归。
#include <iostream>
using namespace std;

int max(int [],int); // max函数原型
int main()
{
int a[10]={1,3,8,2,4,9,5,7,6,0};
cout << "a数组最大元素为:" << max(a,10) << endl;
return 0;
}
int max(int arr[], int size) // max函数定义
{
if (size == 2)
return arr[0] > arr[1] ? arr[0] : arr[1];
else
return max(arr,size - 1) > arr[size - 1] ? max(arr,size - 1) : arr[size - 1];
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mark063
2009-10-08 · TA获得超过519个赞
知道答主
回答量:151
采纳率:100%
帮助的人:125万
展开全部
#include<stdio.h>
#define N 10//由于数组大小不可改变,故定义宏,可修改

int max(int*a,int n,int big)
{
if(n==-1)return big;
else{
if(a[n]>big){
return max(a,n-1,a[n]);
}
else return max(a,n-1,big);
}
}

int main()
{
int i,big,a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
big=max(a,N-1,-9999999);
printf("The biggest is %d\n",big);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祁日答涵桃
2020-06-13 · TA获得超过3673个赞
知道大有可为答主
回答量:3107
采纳率:30%
帮助的人:461万
展开全部
楼上的代码写得有点繁琐,其实一个简单的if结构就可以实现这个递归。
#include
using
namespace
std;
int
max(int
[],int);
//
max函数原型
int
main()
{
int
a[10]={1,3,8,2,4,9,5,7,6,0};
cout
<<
"a数组最大元素为:"
<<
max(a,10)
<<
endl;
return
0;
}
int
max(int
arr[],
int
size)
//
max函数定义
{
if
(size
==
2)
return
arr[0]
>
arr[1]
?
arr[0]
:
arr[1];
else
return
max(arr,size
-
1)
>
arr[size
-
1]
?
max(arr,size
-
1)
:
arr[size
-
1];
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洋赫旁珺
2020-02-20 · TA获得超过3727个赞
知道大有可为答主
回答量:3057
采纳率:28%
帮助的人:201万
展开全部
楼上的代码写得有点繁琐,其实一个简单的if结构就可以实现这个递归。
#include
<iostream>
using
namespace
std;
int
max(int
[],int);
//
max函数原型
int
main()
{
int
a[10]={1,3,8,2,4,9,5,7,6,0};
cout
<<
"a数组最大元素为:"
<<
max(a,10)
<<
endl;
return
0;
}
int
max(int
arr[],
int
size)
//
max函数定义
{
if
(size
==
2)
return
arr[0]
>
arr[1]
?
arr[0]
:
arr[1];
else
return
max(arr,size
-
1)
>
arr[size
-
1]
?
max(arr,size
-
1)
:
arr[size
-
1];
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式