编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和
#include<iostream>
#include<iomanip>
using namespace std;
const int n=8;
template<class T>
class Array{
public:
Array(T *p)
{
set=p;
}
~Array(){}
void inversion();//倒置
T sum();//求和
void seek(T h);//查找
void show();//显示
private:
T *set;
};
template<class T>
void Array<T>::inversion()
{
cout<<"数组倒置后为:";
for(int i=n-1;i>=0;i--)
cout<<setw(5)<<set[i];
cout<<endl;;
}
template<class T>
T Array<T>::sum()
{
T sum=0;
for(int i=0;i<n;i++)
{
sum=sum+set[i];
}
cout<<"该数组元素的和为:"<<sum<<endl;
return 0;
}
template<class T>
void Array<T>::show()
{
cout<<"数组:";
for(int i=0;i<n;i++)
cout<<setw(5)<<set[i];
cout<<endl;
}
template<class T>
void Array<T>::seek(T h)
{
int i;
for(i=0;i<n;i++)
if(h==set[i])
{
cout<<h<<"是数组的第"<<i+1<<"个元素。"<<endl;
break;
}
if(h!=set[i])
cout<<h<<"不属于该数组的元素。"<<endl;
}
int main()
{
int a[n]={1,2,3,4,5,6,7,8};
double b[n]={8,7,6,5,4,3,2,1};
Array<int>arry(a);
Array<double>arrt1(b);
arry.show();
arry.inversion();
arry.seek(3);
arry.sum();
cout<<"**************************"<<endl;
arrt1.show();
arrt1.inversion();
arrt1.seek(78);
arrt1.sum();
system("puause");
return 0;
}