C ++编写一个使用类模板对数组进行排序、查找和求元素和的程序。

编写一个使用类模板对数组进行排序、查找和求元素和的程序。

写的我好累,分给我吧
#include<iostream.h>

#include<iomanip.h>

template <class T>

class Array

{

T *set;

int n;

public:

Array(T *data,int i){set=data;n=i;}

~Array(){}

void sort(); // 排序

int seek(T key); // 查找指定的元素

T sum(); // 求和

void disp(); // 显示所有的元素

};

template<class T>

void Array<T>::sort()

{

int i,j;

T temp;

for(i=1;i<n;i++)

for(j=n-1;j>=i;j--)

if(set[j-1]>set[j])

{

temp=set[j-1];set[j-1]=set[j];set[j]=temp;

}

}

template <class T>

int Array<T>::seek(T key)

{

int i;

for(i=0;i<n;i++)

if(set==key)

return i;

return -1;

}

template<class T>

T Array<T>::sum()

{

T s=0;int i;

for(i=0;i<n;i++)

s+=set;

return s;

}

template<class T>

void Array<T>::disp()

{

int i;

for(i=0;i<n;i++)

cout<<set<< ;

cout<<endl;

}

void main()

{

int a[]={6,3,8,1,9,4,7,5,2};

double b[]={2.3,6.1,1.5,8.4,6.7,3.8};

Array<int>arr1(a,9);

Array<double>arr2(b,6);

cout<< arr1:<<endl;

cout<< 原序列:; arr1.disp();

cout<< 8在arr1中的位置:<<arr1.seek(8)<<endl;

arr1.sort();

cout<< 排序后:; arr1.disp();

cout<<arr2:<<endl;

cout<< 原序列:; arr2.disp();

cout<< 8.4在arr2中的位置:<<arr2.seek(8.4)<<endl;

arr2.sort();

cout<< 排序后:; arr2.disp();

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-18
写的我好累,分给我吧
#include<iostream.h>
#include<iomanip.h>
template
<class
T>
class
Array
{
T
*set;
int
n;
public:
Array(T
*data,int
i){set=data;n=i;}
~Array(){}
void
sort();
//
排序
int
seek(T
key);
//
查找指定的元素
T
sum();
//
求和
void
disp();
//
显示所有的元素
};
template<class
T>
void
Array<T>::sort()
{
int
i,j;
T
temp;
for(i=1;i<n;i++)
for(j=n-1;j>=i;j--)
if(set[j-1]>set[j])
{
temp=set[j-1];set[j-1]=set[j];set[j]=temp;
}
}
template
<class
T>
int
Array<T>::seek(T
key)
{
int
i;
for(i=0;i<n;i++)
if(set==key)
return
i;
return
-1;
}
template<class
T>
T
Array<T>::sum()
{
T
s=0;int
i;
for(i=0;i<n;i++)
s+=set;
return
s;
}
template<class
T>
void
Array<T>::disp()
{
int
i;
for(i=0;i<n;i++)
cout<<set<<
;
cout<<endl;
}
void
main()
{
int
a[]={6,3,8,1,9,4,7,5,2};
double
b[]={2.3,6.1,1.5,8.4,6.7,3.8};
Array<int>arr1(a,9);
Array<double>arr2(b,6);
cout<<
arr1:<<endl;
cout<<
原序列:;
arr1.disp();
cout<<
8在arr1中的位置:<<arr1.seek(8)<<endl;
arr1.sort();
cout<<
排序后:;
arr1.disp();
cout<<arr2:<<endl;
cout<<
原序列:;
arr2.disp();
cout<<
8.4在arr2中的位置:<<arr2.seek(8.4)<<endl;
arr2.sort();
cout<<
排序后:;
arr2.disp();
}
相似回答