怎么用一个递归函数来返回一个数组中的最小值阿?
怎么用一个递归函数来返回一个数组中的最小值,请指点一下……
程序代码:
root@~ #cat min.c #include <stdio.h> int main (void) { int a[10]={-2,3,4,1,4,5,6,8,19,0}; int min(int a[],int n); printf("min=%i\n",min(a,10)); return 0; } int min(int a[],int n) { int v1,v2,v3; if(n==1) return a[0]; if(n%2==0) { v1=min(a,n/2); v2=min(a+n/2,n/2); if(v1<v2) return v1; else return v2; } if(n%2!=0) { v1=min(a,n/2); v2=min(a+n/2+1,n/2); v3=a[n/2]; if(v1<v2) { if(v1<v3) return v1; else return v3; }else { if(v2<v3) return v2; else return v3; } } } root@~ #./min min=-2 root@~ #