重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
创新互联主营兰州网站建设的网络公司,主营网站建设方案,成都APP应用开发,兰州h5小程序开发搭建,兰州网站营销推广欢迎兰州等地区企业咨询
#define MAXLENGTH 5
void main()
{
int Input[MAXLENGTH] = {0}, i = 0;
int _GetMax(int *Input,int Index);
printf("请输入%d个整数:\n",MAXLENGTH);
for (i = 0; i MAXLENGTH; i++)
{
scanf("%d",Input[i]);
}
int max = _GetMax(Input,0);
printf("最大值为:%d\n",max);
}
int _GetMax(int *Input, int Index)
{
if (Index == MAXLENGTH -1)
{
return Input[Index];
}
else
{
int Bigger = _GetMax(Input,Index + 1);
return Input[Index] Bigger ? Input[Index] : Bigger;
}
}
#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;
}
递归没有出口,改成下面的试试
#include"stdio.h"
#define
M
50//数组最多可以有50个元素
int
i,n,a[M];//n为数组的元素个数
int
max(int
a[],int
n)
{
if(n==0)
return
0;
if(a[n-1]=max(a,n-1))
return
a[n-1];
else
if(a[n-1]max(a,n-1))
return
max(a,n-1);
}
void
main()
{
printf("please
input
n:\n");
scanf("%d",n);
printf("please
input
a[]\n",i);
for(i=0;in;i++)
scanf("%d",a[i]);
printf("%d",max(a,n));
}
int maxnum(int array[], int n)
{ if(n == 1)
{ return array[0];
}
else
{ return max(array[0], maxnum(array+1,n-1));
}
}