4个回答
展开全部
#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;
}
展开全部
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);
}
{
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
{
if(1 == len) // 只有一个元素
{
return arr[0];
}
int a = arr[0]; //第一个元素
int b = max(arr + 1, len - 1); //第二个元素起的最大值
return a > b? a : b;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编译通过
#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();
}
#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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询