c++程序分析
我刚学c++不久,还不怎么会编程序。我编的程序自己看着没啥问题,好像可以执行,但是,等一编译之后,电脑出现的要么是几个我看不懂得错误提示,要么就是进入了死循环。求助大家帮帮忙!!!!下面是我编的成序,请大家帮忙分析一下愿因.谢谢啊!#include <iostream>
using namespace std;
const int Maxsize=10;
class Seqlist
{
public:
Seqlist()
{
length=0;
}
Seqlist(int a[],int n);//有参构造函数
void insert(int i,int x);//在现行表中第i个位置插入值为x的元素
int Delete(int i);//删除现行表的第i个元素
int locate(int x);//按值查找,求现行表中值为x的元素序号
void printlist()// 遍历现行表,按序号依次输出 各元素
{
for(int i=0;i<length;i++)cout<<data[i];
}
private:
int data[Maxsize];
int length;
};
Seqlist::Seqlist(int a[],int n)
{
if(n>Maxsize)cout<<"参数非法!";
for(int i=0;i<n;i++)
data[i]=a[i];
length=n;
}
void Seqlist::insert(int i,int x)
{
if(length>=Maxsize) cout<<"上溢!";
if(i<0||i>length+1)cout<<"位置";
for(int j=length;j>=i;j--)
data[i-1]=x;
length++;
}
int Seqlist::Delete(int i)
{
if(length==0)cout<<"下溢";
if(i<1||i>length)cout<<"位置";
int x=data[i-1];
for(int j=i;j<length;j++)
data[j]=data[j-1];
length--;
return x;
}
int Seqlist::locate(int x)
{
for(int i=0;i<length;i++)
if(data[i]==x)return i+1;
return 0;
}
int main()
{
int w[]={1,2,3,4,5,6,7},n=sizeof(w),y=100,j;
Seqlist p ;
Seqlist(w,n);
p.insert(4,y);
for( j=0;j<n+1;j++)
cout<<w[j];
p.Delete(5);
for( j=0;j<n-1;j++)
cout<<w[j];
cout<<"k="<<p.locate(3);
p.printlist();
return 0;
}