欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 编程题-函数模板

编程题-函数模板

2025/11/9 4:44:53 来源:https://blog.csdn.net/workflower/article/details/140368076  浏览:    关键词:编程题-函数模板

一、写一个函数模板,求数组中的最大元素,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整数也可以是双精度类型。

#include<iostream>
using namespace std;
template <class Type>             //函数模板
Type max(Type *Array,int size)
{ int i,j=0;for (i=1;i<size-1;i++)if (Array[i]>Array[j]){ j=i; } return  Array[j];
}
int main()
{ int intArray[]={11,12,13,14,7,8,9};double doubleArray[]={11.2,12.3,13.2,14.5,14.8,8.7,9.3};cout<<max(intArray,7)<<endl;cout<<max(doubleArray,7)<<endl;
return 0;
}

二、写一个函数模板,使用冒泡排序将数组内容由小到大排列并打印出来,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整数也可以是双精度型。

#include <iostream>
using namespace std;
template <class Type>
void sort(Type *Array,int size)
{ int i,j;for (i=0;i<size-1;i++)for (j=0;j<size-i-1;j++)if (Array[j]>Array[j+1]){ Type temp= Array[j];Array[j]=Array[j+1];Array[j+1]=temp;}  
for (i=0;i<=size-1;i++)cout<<Array[i]<<" ";cout<<endl;
}
int main()
{ int intArray[]={11,12,13,14,7,8,9};double doubleArray[]={11.2,12.3,13.2,14.5,14.8,8.7,9.3};sort(intArray,7);sort(doubleArray,7);return 0;
}

三、建立一个用来实现求三个数和的类模板(将成员函数定义在类模板的内部), 并写出调用此类模板的完整程序。在类模板外定义各成员函数。

#include<iostream>
using namespace std;
template<typename T>          //模板声明,其中为T类型参数
class Sum{                    //类模板名为Sumpublic:Sum(T a,T b,T c);         //声明构造函数的原型T add();                //声明成员函数add的原型private:
T x,y,z;
};
template <typename T>         //模板声明
Sum<T>::Sum(T a, T b,T c)     //在类模板体外定义构造函数
{ x=a;  y=b;  z=c;
}
template <typename T>         //模板声明
T Sum<T>:: add()             //在类模板体外定义成员函数add,返回类型为T
{ return x+y+z;
}
int main()
{ Sum<int> s1(3,7,9);         //用类模板定义对象s1,此时T被int替代Sum<double> s2(12.34,56.78,67.89); 
//用类模板定义对象s2,此时T被double替代cout<<"三个整数的和是:"<<s1. add()<<endl;cout<<"三个双精度数的和是:"<<s2. add()<<endl;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com