编写一个使用数组类模板Array对数组进行排序、求最大值和求元素和的程序,并采用相关数据进行测试。
#include<iostream>
#include<string>
//#include<time.h>
//#include<stdlib.h>
using namespace std;
template <class T,int Max>
class Array
{
private:
T a[Max];
int num;
public:
// Array(int num,T *p):{strcpy(a,p);}
void setdata();
void display();
void getsum();
int getmax();
void sort();
};
template <class T,int Max>
void Array<T,Max>::setdata()
{
cout<<"please input array's length:"<<endl;cin>>num;
cout<<"please input "<<num<<" number:"<<endl;
// num = 10;
// srand(time(NULL));
for(int i=0;i<num;i++)
cin>>a[i];//cin>>a[i] = rand()%1000;
}
template <class T,int Max>
void Array <T,Max>::display()
{
cout<<"array's number from small to big:"<<endl;
for(int i=0;i<num;i++)
cout<<a[i]<<"\t";
cout<<endl;
}
template <class T,int Max>
void Array<T,Max>::getsum()
{
for(int i=0,sum=0;i<num;i++)
sum+=a[i];
cout<<"array's sum is:"<<endl;
cout<<sum<<endl;
}
template <class T,int Max>
int Array<T,Max>::getmax()
{
int j=0;
for(int i=0;i<num;i++)
{
if(j<a[i])
j=a[i];
}
cout<<"array's max is:"<<endl;
cout<<j<<endl;
return j;
}
template <class T,int Max>
void Array<T,Max>::sort()
{
int k;
for(int i=0;i<num;i++)
{
for(int j=i+1;j<num;j++)
if(a[i]>a[j])
{
k=a[i];a[i]=a[j];a[j]=k;
}
}
}
void main()
{
Array<int,100> obj;
obj.setdata();
obj.display();
obj.getsum();
obj.getmax();
obj.sort();
obj.display();
}