【发布时间】:2017-01-02 21:55:42
【问题描述】:
#include<stdio.h>
#define SIZE 7
int recursiveMinimum( int a[], int size );
int main(void) {
int a[ SIZE ] = { 5, 7, 4, 3, 5, 1, 3 }; // Number 2 is not initialized.
printf( "The smallest number is %d", recursiveMinimum( a, SIZE ) );
return 0;
}
int recursiveMinimum( int a[], int size ) {
static int min ;
static int i = 0;
min = a[ i ];
if( a[ i + 1 ] < min ) {
min = a[ i + 1 ];
}
i++;
if( i == size ) {
return min;
} else {
return recursiveMinimum( a, size );
}
}
那为什么要打印2?
【问题讨论】:
-
我怀疑一个典型的“人工示例只学习递归”的案例。它的唯一用途是当你成为老师的那一天,然后你可以用人工例子教别人如何使用递归,这样当他们成为老师的那一天,他们就可以用人工例子教别人如何使用递归,这样—— ...
-
recursiveMinimum()中不需要static变量。