分析:通过两两比较求得大值。第一次是a[0]的值和后面所有值a[1]-a[9]的最大值进行比较,返回最大值。如何得到a[1]到a[9]的最大值呢?递归调用。用a[1]和后面所有值a[2]-a[9]的最大值进行比较。依次类推。0
#include<stdio.h>
int max(int a[],int len)
{
int x,y;
if(len==1)
return a[0];
else
{
x=a[0];
y=max(a+1,len-1);
}
return x>y?x:y;
}
int main()
{
int a[10];
int i;
printf("请输入10个数\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
printf("最大值为%d\n",max(a,10));
return 0;
}