搜索
查看: 797|回复: 3
打印 上一主题 下一主题

求教,哪里出错了,怎么改

[复制链接]
楼主
发表于 2014-3-8 18:52:23 | 显示全部楼层
本帖最后由 超神级 于 2014-3-8 20:11 编辑

#include<stdio.h>
#include<malloc.h>
#define ERROR 0//ERROR=0
#define OK 1//ok=1


#define INIT_SIZE 5//INIT_SIZE= 5
#define INCREM 5//INCREM =5
typedef int  ElemType;//int  =ElemType
typedef struct Sqlist{
        ElemType *slist;//单链表
        int length;//数据域
        int listsize;//数据域
}Sqlist;
//Sqlist=struct Splist

int InitList_sq(Sqlist *L);//返回值为int类型 ,函数名初始化init。形参为指针struct Splist类型,函数声明
int CreateList_sq(Sqlist *L, int n);//返回值int类型!函数名创造createl。形参一个指针类型一个int类型,声明
int ListInsert_sq(Sqlist *L, int i, ElemType e);//返回值int类型!函数名插入Insert.形参一个指针。俩int!声明
int PrintList_sq(Sqlist *L);//返回值int!函数名print打印!形参指针,声明
int ListDelete_sq(Sqlist *L, int i);//返回值int类型,函数名delete删除,形参指针,int,声明。
int ListLocate(Sqlist *L, ElemType e);//返回值int,查找locata.形参指针。int,



int InitList_sq(Sqlist *L)//初始化!
{
        L->slist = (ElemType*)malloc(INIT_SIZE*sizeof(ElemType));//分配一块理论上20字节的内存空间地址赋给L->slist!动态内存分配.
        if (!L->slist) //为0
                return ERROR;//返回·0
        L->length = 0;//长度为0
        L->listsize = INIT_SIZE;//长度为5
        return OK;//返回1
}/*InitList*/


int CreateList_sq(Sqlist *L, int n)//创造
{
        ElemType e;//int e
        int i;
        for (i = 0; i < n; i++)
        {
                printf("input date %d", i + 1);//i+1是当前
                scanf("%d", &e);//目前最新的c11标准有scanf_s函数。
                if (!ListInsert_sq(L, i + 1, e))//此处调用插入函数。插入函数不为0。if不执行下条语句句
                        return ERROR;//返回0
        }
        return OK;//返回1
}/*CreateList*/

/*输出顺序表中的元素*/
int PrintList_sq(Sqlist *L)//输出
{
        int i;
        for (i = 1; i <= L->length; i++)
                printf("%5d", L->slist[i - 1]);
        return OK;//返回0
}/*PrintList*/

int  ListInsert_sq(Sqlist *L, int i, ElemType e)//插入
{
        int k;
        if (i<1 || i>L->length + 1)
                return ERROR;
        if (L->length >= L->listsize)
        {
                L->slist = (ElemType*)realloc(L->slist,
                        (INIT_SIZE + INCREM)*sizeof(ElemType));
                if (!L->slist)
                        return ERROR;
                L->listsize += INCREM;
        }
        for (k = L->length - 1; k >= i - 1; k--){
                L->slist[k + 1] = k;
        }
        L->slist[i - 1] = e;
        L->length++;
        return OK;
}/*ListInsert*/

int ListDelete_sq(Sqlist *L, int i)//删除
{
        if ((i<1) || (i>L->length))
                return ERROR;
        int p;
        for (p = i - 1; p>L->length - 1; p++)
                L->slist[p] = L->slist[p + 1];
        L->length--;
        return OK;
}

int ListLocate(Sqlist *L, ElemType e){
        return 0;
}
int main(){
        Sqlist s1;
        int n;
        printf("please input n:");/*输入顺序表的元素个数*/
        scanf("%d", &n);
        if (n>0){
                printf("\n1-Create Sqlist:\n");
                InitList_sq(&s1);
                CreateList_sq(&s1, n);
                printf("\n2-Print Sqlist:\n");
                //printList_sq(&s1);
        else
                printf("ERROR");
        return 0;
}
//修改的无力!现在上面程序没有语法错误了!可以运行.

点评

我竟然把这个程序看完了.....  发表于 2014-3-8 20:13
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表