/* * 递归方式求数组中的最大值 */ #include<stdio.h> #include<stdlib.h> int getmax(int *a,int i,int n) { //特别注意递归的出口 if(i>=n)return *(a+i-1); int value=getmax(a,i+1,n); if(*(a+i)>=value)return *(a+i); else { return getmax(a,i+1,n); } } int main() { int a[]={4,1,7,2,8,5,6,3,9}; int n=sizeof(a)/sizeof(a[0]); int i=0; int max=getmax(a,i,n); printf("max=%d\n",max); return 0; }