用C语言编写程序实现顺序表的插入操作,并且从键盘读取元素给顺序表初始化。(要求用VC++工具编写)

这是我写好的代码,但是有错误。希望大侠帮忙指出,并给我正确的代码
#include<stdio.h>
#include<malloc.h>
#define LISTSIZE 100
#define ADD 10
typedef struct {
int *elem;
int length;
int listsize;
}List;//定义线性表的结构体
void SqList(List &L)
{

int i;//C++中C程序的变量定义放在开始

L.elem=(int *)malloc(LISTSIZE*sizeof(int));
if(!L.elem) exit(0);
L.listsize=LISTSIZE;
printf("请输入线性表长度:");
scanf("%d",&L.length);
printf("为线性表赋值:");
for(i=0;i<=L.length-1;i++)
scanf("%5d",&L.elem[i]);

}//初始化线性表
int InsertSq(List &L,int i,int e)
{
int *p=NULL, *q=NULL;//所有变量的定义都必须置前
if(i<0||i>L.length+1) return 0;
if(L.length>=L.listsize)
{
int *newbase;
newbase=(int *)realloc(L.elem,(L.listsize+ADD)*sizeof(int));
if(!newbase) exit(0);
L.elem=newbase;
L.listsize+=ADD;
}

*q=L.elem[i-1];
for(*p=L.elem[L.length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
L.length++;
return 1;
}//在线性表的第i个元素之前插入元素e
void main()
{

void SqList(List &L);
int InsertSq(List &L,int i,int e);
int i,e,k; //函数调用前,变量必须定义

SqList(L);
printf("输入插入的元素及其位置:");
scanf("%5d%5d",&e,&i);
InsertSq(L,i,e);
for(k=0;k<=L.length-1;k++)
printf("%5d",L.elem[k]);
}

在你的基础上改的
#include<stdio.h>
#include<stdlib.h>

#define LISTSIZE 100
#define ADD 10
typedef struct {
int *elem;
int length;
int listsize;
}List;//定义线性表的结构体
void SqList(List &L)
{

//int i;//C++中C程序的变量定义放在开始

L.elem=(int *)malloc(LISTSIZE*sizeof(int));
if(!L.elem) exit(0);
L.listsize=LISTSIZE;
//printf("请输入线性表长度:");
//scanf("%d",&L.length);
//printf("为线性表赋值:");
//for(i=0;i<=L.length-1;i++)
//scanf("%5d",&L.elem[i]);
L.length =0;//如果是初始化,那么长度就是0
}//初始化线性表

int InsertSq(List &L,int i,int e)
{
int *p=NULL, *q=NULL;//所有变量的定义都必须置前
if(i<0||i>L.length+1) return 0;
if(L.length>=L.listsize)
{
int *newbase;
newbase=(int *)realloc(L.elem,(L.listsize+ADD)*sizeof(int));
if(!newbase) exit(0);
L.elem=newbase;
L.listsize+=ADD;
}

q=&L.elem[i-1];
for(p=&L.elem[L.length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
L.length++;
return 1;
}//在线性表的第i个元素之前插入元素e

void PrintList(List L)
{
printf("顺序表中的元素:\n");
for(int k=0;k<=L.length-1;k++)
printf("%5d",L.elem[k]);
printf("\n");
}

void main()
{

//void SqList(List &L);
//int InsertSq(List &L,int i,int e);使用之前已经定义了,可以不用函数说明
List L;
int i,e; //函数调用前,变量必须定义

SqList(L);
printf("输入顺序表中元素的个数:");
scanf("%d",&i);

printf("请输入元素:");
for(int j=1;j<=i;j++)
{
scanf("%d",&e);
InsertSq(L,j,e);
}

PrintList(L);
printf("输入插入的元素及其位置:");
scanf("%5d%5d",&e,&i);
InsertSq(L,i,e);
PrintList(L);
}
温馨提示:内容为网友见解,仅供参考
无其他回答

...并且从键盘读取元素给顺序表初始化。(要求用VC++工具编写)
printf("输入顺序表中元素的个数:");scanf("%d",&i);printf("请输入元素:");for(int j=1;j<=i;j++){ scanf("%d",&e);InsertSq(L,j,e);} PrintList(L);printf("输入插入的元素及其位置:");scanf("%5d%5d",&e,&i);InsertSq(L,i,e);PrintList(L);} ...

用C语言编写一个有关顺序表的程序代码
printf("%c",L->elem[i]);printf("\\n");} int ListLength(SqList *L) \/* 求顺序表的长度 *\/ { return(L->length);} int ListEmpty(SqList *L) \/* 求顺序表是否为空 *\/ { return(L->length==0);} int GetElem(SqList *L,int i,ElemType e) \/*求顺序表中某个数据...

用C语言创建一个顺序表并完成插入等操作
char a[],int n) { \/\/建立顺序表int i;for(i = 0;i < n;i++) L->data[i] = a[i];L->length = n;}bool listinsert(sqlist *&L,int i,char e) { \/\/插入数据元素int j;if(i < 1 || i > L->length + 1) return false;i--;for(j = L->length;j > i;j--)...

用c语言编写一段程序,建立一个顺序表(需要自己输入数据,并插入数据...
l->elem) exit(0); l->length=0; l->listsize=LIST_INIT_SIZE;}int InList(SqList *l){ int *p,*newbase; p=l->elem; while(1) { for(;p<l->elem+l->listsize;p++) { scanf("%d",p);if(*p==-1) break;l->length++; } if((p==l->elem+l->listsize))...

数据结构 用C语言实现顺序表的建立及遍历
include <stdio.h>#include <malloc.h>typedef struct nlist{ int *np; int len;\/\/已使用地址个数 int maxlen;\/\/最大地址个数}NLT;NLT *createlist();\/\/创建顺序表int addtolist(NLT *nlist);\/\/向顺序表插入元素void pList(NLT *nlist);\/\/遍历顺序表int main(){ int i...

...的数据元素递增有序,试写一算法将x插入到顺序表的适当位置,以保持该...
include <stdio.h>\/\/ a 顺序表 x 将要插入值 len 顺序表长度\/\/ 返回值为表a的新长度int insert(int x, int * a, int len){printf("%3d ins ", x); \/\/ 这句为了演示用,显示插入的数值int l, r, m;\/\/ 查找插入位置l = -1;r = len;m = (l + r) \/ 2;while(r - l...

设计一个能进行顺序表基本运算的演示程序(C语言)
InitList(&num); \/*初始化顺序表*\/ for(i=0;i<10;i++) \/*建立顺序表*\/ { if(!ListInsert(&num,i+1,data[i])) \/*插入元素*\/ { printf("\\n运行错误!\\n");return 0;} } printf("\\n\\n删除前顺序表中元素\\n");TraverseList(num); \/*显示表中所有元素*\/ ...

是C语言中建立顺序表的程序
void show(Seqlist L);\/\/显示线性表 int main(){ Seqlist L;L.length=0;\/\/初始化线性表的长度为0 creat(L);show(L);return 0;} void creat(Seqlist &L){ int a;printf("请输入要创建的元素的个数:\\t");scanf("%d",&a);for(int i=0;i<a;i++){ printf("请输入第%d个元素...

编写一个程序,实现顺序表的建立,插入,查找,删除等操作
int Find (Sequenlist *L, int x )\/\/ 查找元素x { int i=1;while ( i <=L->last && L->data[i] != x )i++;if ( i <=L->last )return (i);else return (0);} int Insert ( Sequenlist * L, int x, int i ) \/\/在某一位置插入数据 { int j;\/\/在表中第 i 个...

基于C语言的数据结构,怎样做顺序表插入
1、顺序表的插入,常用方法就是从插入点后平移数据。2、例如:void InsertSeqList(SeqList L, DataType x, int i){ \/\/将元素x插入到顺序表L的第i个数据元素之前 if(L.length==Maxsize) exit("表已满");if(i<1||i>L.length+1) exit("位置错");for (j=L.lenght; j>=i;...

相似回答