电子科技大学推免复试题:利用递归方法找出一个数组中的最大值和最小值
/****************************编写一个函数,使之能完成以下功能:利用递归方法找出一个数组中的最大值和最小值,要求递归调用函数的格式如下:MinMaxValue(arr,n,&max,&min),其中arr是给定的数组,n是数组元素的个数,max、min分别是最大值和最小值。****************************/#include<stdio.h>#include<time.h>#include<cstdlib>#include<iostream>using namespace std;//产生随机数组void Random(int a[],int n){ int i=0; srand( (unsigned)time( NULL ) ); while(i<n) { a[i++]=rand()/100; }}//print the arrayvoid print(int a[], int len){ int i; for (i = 0; i < len; i++) cout<<a[i]<<" "; cout<<endl;}void MinMaxValue(int arr[],int n,int *max,int *min){ if(n>0) { if(*max<arr[n-1]) *max=arr[n-1]; if(*min>arr[n-1]) *min=arr[n-1]; MinMaxValue(arr,n-1,max,min); } else return ;}int main(){ int a[10]={0}; int max=0,min=65535; print(a,10); Random(a,10); print(a,10); MinMaxValue(a,10,&max,&min); cout<<max<<'\n'<<min<<'\n';}/**************0 0 0 0 0 0 0 0 0 0180 208 103 278 299 37 220 6 301 2703016Process returned 0 (0x0) execution time : 1.492 sPress any key to continue.***************/