#include<iostream>
#include<string>
using namespace std;
template<typename T>
class Array
{
private:
T*p;
int n;
public:
Array(){}
Array(T* a,int b)
{p=a;
n=b;
}
void sort();
void search();
void sum();
void sum11();
void show();
};
template<typename T>
void Array<T>::show()
{
for(int i=0;i<n;i++)
cout<<p[i]<<" ";
cout<<endl;
}
template<typename T>
void Array<T>::sort()//排序:
{
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
{ T temp;
if(p[j]>p[j+1])
{temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
template<typename T>
void Array<T>::search()
{
int b=1;int a;
while(b)
{
cout<<"输入你要找数组元素序数:"<<endl;
cin>>a;
while(a<1||a>n)
{cout<<"没有这个元素,请重新输入:"<<endl;
cin>>a;
}
cout<<p[a-1]<<endl;
cout<<" 是否要继续查找"<<" ";
cout<<"是的话请输入1,不是就输入0:"<<endl;
cin>>b;
}
}
template<typename T>
void Array<T>::sum()
{
T sum1=0;
for(int i=0;i<n;i++)
sum1+=p[i];
cout<<sum1<<endl;
}
template<typename T>
void Array<T>::sum11()
{
int sum1=0;
for(int i=0;i<n;i++)
sum1+=p[i];
cout<<sum1<<endl;
}
int main()
{
int a[5]={2,20,3,52,24};
double b[6]={1.2,2.3,6.35,6.35,6.0,3.21};
char c[6]={'a','b','C','B','A','c'};
Array<int>array(a,5);
cout<<"数组a为:"<<endl;
array.show();
cout<<"数组元素之和为:"<<" "<<endl;
array.sum();
array.search();
cout<<"给数组从小到大排序:"<<endl;
array.sort();
array.show();
cout<<"....................................."<<endl;
Array<double>array1(b,6);
cout<<"数组b为:"<<endl;
array1.show();
cout<<"数组元素之和为:"<<" "<<endl;
array1.sum();
array1.search();
cout<<"给数组从小到大排序:"<<endl;
array1.sort();
array1.show();
cout<<"...................................."<<endl;
Array<char>array2(c,6);
cout<<"数组c为:"<<endl;
array2.show();
cout<<"数组元素之和为:"<<" "<<endl;
array2.sum11();
array2.search();
cout<<"给数组从小到大排序:"<<endl;
array2.sort();
array2.show();
return 0;
}
用指针实现实验8.9
最新推荐文章于 2021-09-21 23:14:59 发布