读书人

电子科技大学推免复考题:利用递归方法

发布时间: 2013-09-28 10:01:20 作者: rapoo

电子科技大学推免复试题:利用递归方法找出一个数组中的最大值和最小值

/****************************编写一个函数,使之能完成以下功能:利用递归方法找出一个数组中的最大值和最小值,要求递归调用函数的格式如下: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.***************/

读书人网 >编程

热点推荐