#include<iostream>
#include<iomanip>
using namespace std;
template<class Type>
class Array{
public:
Array(Type* d,int i)
{ data=d; n=i;
}
~Array(){ }
void sort();
void Reverse();
void find(int k);
Type sum();
void display();
private:
Type* data;
int n;
};
template<class Type>
void Array<Type>::sort() //采用冒泡排序法
{ int i,j;
Type temp;
for(i=1; i<n;i++)
for(j=n-1;j>=i;j--)
if(data[j-1]<data[j])
{ temp=data[j-1];data[j-1]=data[j];data[j]=temp;
}
}
template<class Type>
void Array<Type>::Reverse() //数组倒置
{ Type temp;
for(int i=0; i<n/2; i++)
{ temp=data[i];
data[i]=data[n-1-i];
data[n-1-i]=temp;
}
}
template<class Type>
void Array<Type>::find(int k)
{ cout<<k<<"元素是:"<<data[k]<<endl;
}
template<class Type>
Type Array<Type>::sum()
{ Type s=0;int i;
for(i=0; i<n;i++)
s+=data[i];
return s;
}
template<class Type>
void Array<Type>::display()
{ int i;
for(i=0; i<n;i++)
cout<<data[i]<<" ";
cout<<endl;
}
int main()
{ int a[]={5,6,7,2,8,1,4,9};
double b[]={1.1,3.3,5.5,2.2,4.4,6.6,8.8,9.9,7.7};
Array<int>a1(a,8);
cout<<"数组a:"<<endl;
cout<<"数组a原始的序列是:";
a1.display();
a1.sort();
cout<<"数组a排序后的序列是:";
a1.display();
a1.Reverse ();
cout<<"数组a倒置后的序列是:";
a1.display();
cout<<"数组a所有元素之和是:"<<a1.sum()<<endl;
cout<<"从第0个元素开始计算,数组a中第";
a1.find(5);
Array<double>b1(b,9);
cout<<"数组b:"<<endl;
cout<<"数组b原始的序列是:";
b1.display();
b1.sort();
cout<<"数组b排序后的序列是:";
b1.display();
b1.Reverse ();
cout<<"数组b倒置后的序列是:";
b1.display();
cout<<"数组b所有元素之和是:"<<b1.sum()<<endl;
cout<<"从第0个元素开始计算,数组b中第";
b1.find(4);
return 0;
}
8.16
最新推荐文章于 2024-08-17 14:03:03 发布