C++習題06(01)函數模板

題目描述
編寫一個函數模板,求數組中的最大元素,並寫出調用此函數模板的主函數,使得函數調用時,數組的類型可以是int型、double型和string類型。數組中元素個數3≤n≤20
主函數中,先從鍵盤輸入各種類型數組的長度,再輸入數組元素的值,調用函數求出最大值,再輸出。
輸入描述
輸入共分6行
int型數組元素的個數
int型數組元素的值
double型數組元素的個數
double型數組元素的值
string類型數組元素的個數
string數組元素的值
輸出描述
三行
int型數組中元素的最大值
double型數組中元素的最大值
string型數組中元素的最大值
輸入樣例
5
78 96 -12 52 856
6
3.2 5.6 89.2 -3.2 46.2 63.47
5
hello world example virtual char
輸出樣例
856
89.2
world

#include<iostream>
#include<string>
using namespace std;


template<typename T>
T Max(T *a, int n)
{
	int j = 0;
	//T maxnum = { 0 };//這裏十分重要,如果是0,string 就不能用了
	//maxnum = a[0];
	for (int i = 1; i < n; i++)
	{
		if (a[i] > a[j])
			j = i;//找到最大值的下標
	}
	return a[j];
}

int main()
{
	int n1, n2, n3;
	int a[20];
	double b[20];
	string c[20];
	cin >> n1;
	for (int i = 0; i < n1; i++)
		cin >> a[i];
	cin >> n2;
	for (int i = 0; i < n2; i++)
		cin >> b[i];
	cin >> n3;
	for (int i = 0; i < n3; i++)
		cin >> c[i];
	cout<<Max(a, n1)<<endl;
	cout << Max(b, n2) << endl;
	cout << Max(c, n3) << endl;
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章