基础不牢,地动山摇。上学期c语言没学好,如今数据结构编程也够呛。今天创建一个顺序线性表,构建好了自己输了十个数据进去然后再输出来检验,发现把代码封装在一个函数里正常运行,得到了想要的结果。可分别放在不同的函数里面,程序终止时便会返回一个巨大的值(非正常退出)。代码如下(当然有些地方不够完善,例如判断空间是否够用,但是只有先解决这个问题后面才好改):
//将表示输入输出的两个for循环语句分别放入Fill 和Print函数中将无法正常运行
#include<stdio.h>
#include<stdlib.h>
#define LIST_INIT_SIZE 100//初始储存容量
#define LISTINCREMENT 10//后续每次多分配10个元素的空间大小
typedef struct{
int * elem;//此程序为线性表的顺序表示,可理解为数组,elem作为数组的基地址
int length;//数组长度
int listsize;//初始储存容量
}SqList;//定义一个名为SqList的结构变量
void InitList_Sq(SqList );//初始化顺序表
//void FillList(SqList );//存入十个数据
//void PrintList(SqList );//输出验证
int main()
{
int i;
SqList L;
InitList_Sq(L);
//FillList(L);
//PrintList(L);
return 0;
}
void InitList_Sq(SqList L )
{
int i;
L.elem = (int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(! L.elem)
{
printf("Fail to Init");
exit (1);
}
L.length = 0;
L.listsize = LIST_INIT_SIZE;
for( i = 0;i<10;i++)
{
scanf("%d",&L.elem[i]);
L.length++;
}
for(i=0;i<10;i++)
{
printf("%d\n",L.elem[i]);
}
printf("%d",L.length);
}
/*void FillList(SqList L )
{
int i;
}*/
/*void PrintList( SqList L )
{
int i;
}*/