生活随笔
收集整理的這篇文章主要介紹了
C++递归求数组最大值、平均值、求和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、學習要點
1.相同類型的對象的復制是通過拷貝構造器;
2.初始化成員列表的具體表達方式,第一個是冒號,剩下的都是逗號。
3.強制類型轉變,(float);
二、程序代碼:
1.有關拷貝構造器的:
#include<iostream>
using namespace std;
class CExample{
private:int a;
public:CExample(int b){a=b;}CExample(const CExample &c){a=c.a}~CExample(){cout<<"destructor is called\n";}void Show(){cout<<a<<endl;}}
int main(){CExample A(100);CExample B=A;B.Show();return 0;
}
運行程序,屏幕輸出100。從以上代碼的運行結果可以看出,系統為對象B分配了內存并完成了與對象 A的復制過程。就類對象而言,相同類型的類對象是通過拷貝構造函數來完成整個復制過程的。
其中CExample(const CExample& C)就是我們自定義的拷貝構造函數。可見,拷貝構造函數是一種特殊的構造函數,函數的名稱必須和類名稱一致,它必須的一個參數是本類型的一個引用變量。
2.
#include<iostream>
using namespace std;
class RecurveArray{
public:int *Element;int ArraySize;
public:RecurveArray(int size=10):Array(size),Element(new int[size]){};~RecurveArray(){delete []Element};void InputArray();int MaxKey(int n);int Sum(int n);folat Ave(int n);
};
int main(){int size=-1;cout<<"請輸入數組尺寸:";cin>>size;RecurveArray re(size);re.InputArray();cout<<"\nThe max is"<<re.MaxKey(size);cout<<"\nThe sum is"<<re.Sum(size);cout<<"\nThe Ave is"<<re.Ave(size)<<"/n";system("pause");return 0;
}
void RecurveArray::InputArray(){for (int i=0;i<ArraySize;i++){cin>>Element[i];}
}
int RecurveArray::MaxKey(int n){if(n==1){return Element[0];}else{if (Element[n-1]>MaxKey(n-1)){return Element[n-1];}else{return MaxKey(n-1);}}
}
int RecurveArray::Sum(int n){if(n==1){return Element[0];}else{return Element[n-1]+Sum(n-1);}
}
float RecurveArray::Ave(int n){if(n==1){return (float)Element[0];}else{return (float)(Element[n-1]+(n-1)*Ave(n-1))/n;}
}
三、程序運行結果:
四、注意事項:
1.初始化成員列表和拷貝構造器;
2.類的應用和封裝;
總結
以上是生活随笔為你收集整理的C++递归求数组最大值、平均值、求和的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。