c++i问题,很急!这个程序怎么老是编译,希望大虾们来给我指点

来源:百度知道 编辑:UC知道 时间:2024/07/03 04:43:55
#include<iostream.h>
const int maxsize=10;
struct sqlist
{ int a[maxsi
int length;
};
void creat(sqlist *l)
{ int i;
cout<<"请输入数组的长度length"<<endl;
cin>>l->length;
for(i=0;i<l->length;i++)
{ cin>>l->a[i];cout<<endl;}
}
void output(sqlist *h)
{ int i;
for(i=0;i<=h->length;i++)
cout<<h->a[i]<<endl;
}
void insert(sqlist *m,int i,int k)
{ int j;
if(m->length>=maxsize-1)cout<<"error";
for(j=m->length;j<i+1;j--)m->a[j+1]=m->a[j];
m->a[i]=k;(m->length)++;
}

void main()
{ sqlist a;

我用的vs2008,
1、第4行没写完整,int a[maxsize];
2、开头是#include <iostream>,没有.h
3、开头加上using namespace std;
补充:
const int maxsize=10;
struct sqlist
{ int a[maxsize];
int length;
};
void creat(sqlist *l)
{ int i;
cout<<"请输入数组的长度length"<<endl;
cin>>l->length;
for(i=0;i<l->length;i++)
{ cin>>l->a[i];cout<<endl;}
}
void output(sqlist *h)
{ int i;
for(i=0;i<h->length;i++)
cout<<h->a[i]<<endl;
}
void insert(sqlist *m,int i,int k)
{ int j;
if(m->length>=maxsize-1)cout<<"error";
else for(j=m->length;j>=i+1;j--) m->a[j]=m->a[j-1]; //你的for里面的起始和判断都错了,注意看我改的,另外,加了一个else,否则上一次if判断出错这个for还是会执行
m->a[i]=k;
(m->length)++;
}

void main()
{ sqlist a;

creat(&a);
output(&a);
insert(&a,1,2);
o