sdut-面向物件程式設計上機練習一(函式過載)
阿新 • • 發佈:2019-01-30
面向物件程式設計上機練習一(函式過載)
Time Limit: 1000MS Memory limit: 65536K
題目描述
利用陣列和函式過載求5個數最大值(分別考慮整數、單精度、長整數的情況)。輸入
分別輸入5個int型整數、5個float 型實數、5個long型正整數。輸出
分別輸出5個int型整數的最大值、5個float 型實數的最大值、5個long型正整數的最大值。示例輸入
11 22 666 44 55 11.11 22.22 33.33 888.88 55.55 1234567 222222 333333 444444 555555
示例輸出
666 888.88 1234567
c++的模板函式的應用:
程式碼如下:
解決方法1
#include <iostream> using namespace std; int max(int a[]) { int i; int m=0; for(i=0; i<5; i++) { if(a[i]>m) m=a[i]; } return m; } float max(float a[]) { int i; float m=0.0; for(i=0; i<5; i++) { if(a[i]>m) m=a[i]; } return m; } long max(long a[]) { int i; long m=0; for(i=0; i<5; i++) { if(a[i]>m) m=a[i]; } return m; } int main() { int i; int x[5]; float y[5]; long z[5]; for(i=0; i<5; i++) cin >> x[i]; for(i=0; i<5; i++) cin >> y[i]; for(i=0; i<5; i++) cin >> z[i]; int e; e=max(x); cout << e << endl; float f; f=max(y); cout << f << endl; long g; g=max(z); cout << g << endl; return 0; }
解決方法2:
#include <iostream> using namespace std; template <class T> T max(T a[]) { int i; T m=0; for(i=0; i<5; i++) { if(a[i]>m) m=a[i]; } return m; } int main() { int i; int x[5]; float y[5]; long z[5]; for(i=0; i<5; i++) cin >> x[i]; for(i=0; i<5; i++) cin >> y[i]; for(i=0; i<5; i++) cin >> z[i]; int e; e=max(x); cout << e << endl; float f; f=max(y); cout << f << endl; long g; g=max(z); cout << g << endl; return 0; }