大神们,请帮忙看一下为什么这个执行时是乱码
#include "stdio.h"
#include "malloc.h"
#define num 10
//定义结构
typedef struct
{
int *data;
int length;
}mylist;
//初始化
void Initlist( mylist &L )
{
L.data=(int*)malloc(num*sizeof(int));
L.length=0;
}
//输出
void output(mylist &L)
{
int i;//i是输入的数据
for(i=0;i<=L.length;i++)
{
printf("%d",L.data[i]);
}
}
//创建
void Createlist( mylist &L)
{
int i,x;//x是输入的数据,i是循环的次数
printf("请输入线性表的数据:\n");
for (i=0;i<num;i++)
{
scanf("%d",&x);
L.data[i]=x;
L.length++;
}
}
//插入
void Insertlist(mylist &L ,int i,int e)//在第i个位置插入元素e
{
int error,p;
/* if (i<0||i>L.length)
printf("%d\n",error) ;//线性表的插入只能在n个元素之间,否则错误
*/
for(p=i;p<=L.length;p++)
{
L.data[i+1]=L.data[i];
}
L.data[i]=e;
L.length++;
}
//删除
void Deletlist(mylist &L,int i,int e)//在第i个位置删除元素e
{
int error,p;
/*if (i<0||i>L.length)
printf("%d\n",error) ;//线性表的删除只能在n个元素之间,否则错误 */
for(p=i;p<=L.length;i++)
{
L.data[i-1]=L.data[i];
}
L.data[i]=e;
L.length--;
}
void main()
{
int i,e;
mylist L;
Initlist(L);
Createlist(L);
printf("线性表的顺序存储链表\n");
output(L);
Insertlist(L,i,e);
printf("请输入你要插入元素的位置\n");
scanf("%d",&i);
printf("请输入你要插入元素\n");
scanf("%d",&e);
printf("输出新的链表\n");
output(L);
Deletlist(L,i,e);
printf("请输入你要删除元素的位置\n");
scanf("%d",&i);
printf("请输入你要删除元素\n");
scanf("%d",&e);
printf("输出新的链表\n");
output(L);
}