求数组中的最小元素(递归反例)

121 阅读1分钟

`#include <stdio.h>

int array_min( int a[], int n ) {

int tailmin, answer;

if (n == 1)  {      // 若数组中只有一个元素
    answer = a[0];  // 则它就是最小的
}
else { 
    tailmin = array_min( a + 1, n - 1 );  //  缩小数组
    if (a[0] < tailmin)    // 比较数组第0和后n-1中的最小者
		answer = a[0];
    else answer = tailmin;   // 选其小者
}  
return answer;

}

int main() {

int a[] = {1,2,4,5,6,7,8,0,9};
printf("%d\n",array_min(a, sizeof(a)/sizeof(a[0]) ) );
return 0;
    

}`