主题:[原创]帮帮小弟吧!输出有问题啊
用Visual C++编写
#include<iostream.h>
#include<stdlib.h>
template<class T>
class array
{
private:
T *data;
public:
array(int n);
int getsize()
{
return n;
}
int length;
int n;
T get(int i);
void set(int x,T newe);
void input(int x,T e);
T Delete(T e);
void add(T newe);
T max();
T min();
void sort();
~array();
};
template<class T>
array<T>::array(int n)
{
length=0;
n=0;
data=(T*)new T[n*sizeof(T)];
length=n;
}
template<class T>
array<T>::~array()
{
delete[] (T*)data;
}
template<class T>
T array<T>::get(int i) //访问数组元素
{
return data[i];
}
template<class T>
void array<T>::set(int x,T newe) //为数组元素赋值
{
data[x]=newe;
}
template<class T>
void array<T>::add(T newe)
{
data[n]=newe;
n++;
}
template<class T>
void array<T>::input(int x,T e)
{
data=new T(length+1);
for(int i=length;i<length-x;i--)
data[i]=data[i-1];
data[x]=e;
length++;
}
template<class T>
T array<T>::Delete(T e)
{
int number=0;
int i=n-1;
do
{
if(data[i]==e)
{
for(int j=i;j<n-1;j++)
data[j]=data[j+1];
number++;
n--;
}
}
while(i--);
return number;
}
template<class T>
T array<T>::max()
{
T temp;
temp=data[0];
for(int i=1;i<length;i++)
if(temp<data[i])
temp=data[i];
return temp;
}
template<class T>
T array<T>::min()
{
T temp;
temp=data[0];
for(int i=1;i<length;i++)
if(temp>data[i])
temp=data[i];
return temp;
}
template<class T>
void array<T>::sort() //使用冒泡排序
{
for(int i=length-1;i>=0;i--)
for(int j=1;j<i;j++)
if(data[j-1]>data[j])
{
T temp=data[j-1];
data[j-1]=data[j];
data[j]=temp;
return;
}
}
void main()
{
array<int> a(10);
int x=0,n=0,i=0;
int number=0,e=0;
int length=0;
cout<<"输入5个数据\n";
for(i=0;i<5;i++)
{
cin>>e;
}
cout<<"请输入插入位置:\n";
cin>>x;
cout<<"请输入插入的元素值: \n";
cin>>e;
cout<<"插入后数组为: \n";
a.input(x,e);
for(i=0;i<6;i++)
cout<<"a["<<i<<"]="<<a.get(i);
cout<<endl;
cout<<"请输入需删除的元素值: \n";
cin>>e;
cout<<"删除后数组为:\n";
for(i=0;i<5;i++)
cout<<"a["<<i<<"]="<<a.get(i);
cout<<endl;
cout<<"最大值为: \n";
a.max();
cout<<a.get(i)<<endl;
cout<<"最小值为:\n";
a.min();
cout<<a.get(x)<<endl;
cout<<"排序结果为: \n";
a.sort();
for(i=0;i<5;i++)
cout<<a.get(i)<<endl;
}
#include<iostream.h>
#include<stdlib.h>
template<class T>
class array
{
private:
T *data;
public:
array(int n);
int getsize()
{
return n;
}
int length;
int n;
T get(int i);
void set(int x,T newe);
void input(int x,T e);
T Delete(T e);
void add(T newe);
T max();
T min();
void sort();
~array();
};
template<class T>
array<T>::array(int n)
{
length=0;
n=0;
data=(T*)new T[n*sizeof(T)];
length=n;
}
template<class T>
array<T>::~array()
{
delete[] (T*)data;
}
template<class T>
T array<T>::get(int i) //访问数组元素
{
return data[i];
}
template<class T>
void array<T>::set(int x,T newe) //为数组元素赋值
{
data[x]=newe;
}
template<class T>
void array<T>::add(T newe)
{
data[n]=newe;
n++;
}
template<class T>
void array<T>::input(int x,T e)
{
data=new T(length+1);
for(int i=length;i<length-x;i--)
data[i]=data[i-1];
data[x]=e;
length++;
}
template<class T>
T array<T>::Delete(T e)
{
int number=0;
int i=n-1;
do
{
if(data[i]==e)
{
for(int j=i;j<n-1;j++)
data[j]=data[j+1];
number++;
n--;
}
}
while(i--);
return number;
}
template<class T>
T array<T>::max()
{
T temp;
temp=data[0];
for(int i=1;i<length;i++)
if(temp<data[i])
temp=data[i];
return temp;
}
template<class T>
T array<T>::min()
{
T temp;
temp=data[0];
for(int i=1;i<length;i++)
if(temp>data[i])
temp=data[i];
return temp;
}
template<class T>
void array<T>::sort() //使用冒泡排序
{
for(int i=length-1;i>=0;i--)
for(int j=1;j<i;j++)
if(data[j-1]>data[j])
{
T temp=data[j-1];
data[j-1]=data[j];
data[j]=temp;
return;
}
}
void main()
{
array<int> a(10);
int x=0,n=0,i=0;
int number=0,e=0;
int length=0;
cout<<"输入5个数据\n";
for(i=0;i<5;i++)
{
cin>>e;
}
cout<<"请输入插入位置:\n";
cin>>x;
cout<<"请输入插入的元素值: \n";
cin>>e;
cout<<"插入后数组为: \n";
a.input(x,e);
for(i=0;i<6;i++)
cout<<"a["<<i<<"]="<<a.get(i);
cout<<endl;
cout<<"请输入需删除的元素值: \n";
cin>>e;
cout<<"删除后数组为:\n";
for(i=0;i<5;i++)
cout<<"a["<<i<<"]="<<a.get(i);
cout<<endl;
cout<<"最大值为: \n";
a.max();
cout<<a.get(i)<<endl;
cout<<"最小值为:\n";
a.min();
cout<<a.get(x)<<endl;
cout<<"排序结果为: \n";
a.sort();
for(i=0;i<5;i++)
cout<<a.get(i)<<endl;
}