正在加载图片...
5-1已知A为整数数组,试写出实现下列运算的递归算法 (1)求数组A中的最大整数 (2)求n个整数的和 (3)求n个整数的平均值 【解答】 class RecureArray i ∥数组类声明 int· Elements; ∥数组指针 ∥数组尺寸 ∥当前已有数组元素个数 public Recurve Array( int MaxSize =10) Array Sie( MaxSize ) Elements( new int[MaxSie]) cRecurveArray (i delete Elements: j 输入数组的内容 int n ); 求最大值 int Sum(intn片; 求数组元素之和 noat Average( int n ) ∥求数组元素的平均值 void RecurveArray: Inputarray(){/输入数组的内容 cout<<"Input the number of Array: ln"; for( int i=0; i <Array ie: i++)cin > Elements[j; int RecurveArray : Markey( intn)t ∥递归求最大值 f(n== l)return Elements[OI if( Elementsn-1>temp)return Elements[n-1; int Recurve Array : Sum( int n)i ∥递弟归求数组之和 if(n==1) else return Elements[n-1]+ Sum(r1); float RecurveArray {∥递归求数组的平均值1 5-1 已知 A[n]为整数数组,试写出实现下列运算的递归算法: (1) 求数组 A 中的最大整数。 (2) 求 n 个整数的和。 (3) 求 n 个整数的平均值。 【解答】 #include <iostream.h> class RecurveArray { //数组类声明 private: int *Elements; //数组指针 int ArraySize; //数组尺寸 int CurrentSize; //当前已有数组元素个数 public : RecurveArray ( int MaxSize =10 ) : ArraySize ( MaxSize ), Elements ( new int[MaxSize] ){ } ~RecurveArray ( ) { delete [ ] Elements; } void InputArray(); //输入数组的内容 int MaxKey ( int n ); //求最大值 int Sum ( int n ); //求数组元素之和 float Average ( int n ); //求数组元素的平均值 }; void RecurveArray :: InputArray ( ){ //输入数组的内容 cout << "Input the number of Array: \n"; for ( int i = 0; i < ArraySize; i++ ) cin >> Elements[i]; } int RecurveArray :: MaxKey ( int n ) { //递归求最大值 if ( n == 1 ) return Elements[0]; int temp = MaxKey ( n - 1 ); if ( Elements[n-1] > temp ) return Elements[n-1]; else return temp; } int RecurveArray :: Sum ( int n ) { //递归求数组之和 if ( n == 1) return Elements[0]; else return Elements[n-1] + Sum (n-1); } float RecurveArray :: Average ( int n ) { //递归求数组的平均值 if ( n == 1) return (float) Elements[0];
向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有