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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-8 18:52:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include<stdio.h>
#include<malloc.h>
#define ERROR 0
#define OK 1


#define INIT_SIZE 5
#define INCREM 5
typedef int  ElemType;
typedef struct Sqlist{
        ElemType *slist;
        int length;
        int listsize;
}Sqlist;


int InitList_sq(Sqlist *L);
int CreateList_sq(Sqlist *L,int n);
int ListInsert_sq(Sqlist *L,int i,ElemType e);
int PrintList_sq(Sqlist *L);
int ListDelete_sq(Sqlist *L,int i);
int ListLocate(Sqlist *L,ElemType e);


int InitList_sq(Sqlist *L){
        L->slist=(ElemType*)malloc(INIT_SIZE*sizeof(ElemType));
        if(!L->slist) return ERROR;
        L->length=0
        L->listsize=INIT_SIZE;
        return OK;
}/*InitList*/


int CreateList_sq(Sqlist *L,int n){
        ElemType e;
        int i;
        for(i=0,i<n,i++){
                printf("input date %d",i+1);
                scanf("%d",&e);
                if(!ListInsert_sq(L,i+1,e))
                        return ERROR;
}
        return OK;
}/*CreateList*/

/*输出顺序表中的元素*/
int PrintList_sq(Sqlist *L){
        int i;
        for(i=1,i<=L->length,i++)
                printf("%5d",L->slist[i-1]);
        return OK;
}/*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-lengh-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>length)) return ERROR;
        for(p=i-1;p<->length-1;p++)
         L->slist[p]=L-slist[p+1];
         L->length--;
         return OK;
     }

    int ListLocate(Sqlist *L,ElemType e){
    }
    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;
           }

最佳答案

查看完整内容

#include #include #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。形参为 ...
沙发
发表于 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
板凳
发表于 2014-3-8 19:50:02 | 只看该作者
本帖最后由 rosynirvana 于 2014-3-8 19:54 编辑

#include<malloc.h>

别看老古董教材了
代码里面有缺;的,有把;打成,的,有打错->的
编译器都有提示……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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