[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; }
相关文章推荐
- [C How To Program] 习题6.32 递归的选择排序
- 《java how to program》习题全解----正在创作中
- [C How To Program] 习题5.39 汉诺塔
- [C How To Program] 习题5.28-最大公约数
- [C How To Program] 习题7.17 龟兔赛跑问题
- [C How To Program] 习题5.37 x的n次方
- [C How To Program] 习题3.38
- [C How To Program] 习题6.35 二分查找
- [C How To Program] 习题6.24c 骑士漫游问题
- [C How To Program] 习题4.38
- [C How To Program] 习题3.46
- [C How To Program] 习题6.38 字符串反转打印
- [C How To Program] 习题6.30 erato_traverse
- 《java how to program》第三版1-6章大部分习题答案[原创]
- [C How To Program] 习题5.32 学习算术
- [C How To Program] 习题5.22
- [C How To Program] 习题 3.36
- Visual C#® 2005: How to Program, Second Edition
- Program Library HOWTO
- 用递归的方法求数组中元素的最大值和最小值