您的位置:首页 > 其它

[C How To Program] 习题6.39 递归求数组的最小值

2014-12-26 17:42 302 查看
#include <stdio.h>
#include <stdlib.h>
#define N 10

int min( int a, int b){
return a < b ? a : b;
}

int minRecur(int *a, int start, int end){
if( start == end ){
return a[ start ];
}
return min(a[start], minRecur( a,  start + 1, end ));
}

int minRecur2(int *a ,int n){
if(n == 1){
return a[0];
}
return min(a[0], minRecur2(&a[1], n - 1));
}

void printA(int *a, int n){
int i;

for(i = 0; i < n; i++){
printf("[%d]:%d  ", i, a[i]);
}
printf("\n");
}

int main(){
int i, a
= {0};
srand(time(NULL));
printA(a, N);

for(i = 0; i < N; i++){
a[i] = rand() % 100;
}
printA(a, N);

printf("minRecur:%d\n",minRecur(a, 0, N - 1 ));
printf("minRecur2:%d\n",minRecur2(a, N ));

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: