首页
社区
课程
招聘
各位(高手)帮我调试一下一个c程序~!~
发表于: 2005-10-17 20:45 5482

各位(高手)帮我调试一下一个c程序~!~

2005-10-17 20:45
5482
在C语言中用动态分配的一维数组描述。
//---线性表的动态分配顺序存储结构---//

#include<math.h>
#define LIST_INIT_SIZE 100 //初始大小
#define LISTINCREMENT 10  //分配增量
typedef struct
{ char name[20];
char stuno[10];
int age;
int score;
}ElemType;
typedef struct{
                ElemType *elem;  //首地址
                int length;  //长度
                     int listsize;  //当前最多可存放的元素个数
                }SqList;
typedef int status;

SqList  InitList_Sq(SqList &L){
                  //构造一个空的线性表,返回构造结果:成功或失败。
                L.elem=(ElemType*)malloc(LIST_INIT_SIZE*Sizeof(ElemType));
                if(!L.elem ) exit(OVERFLOW);
                L.length=0;
                L.listsize=LIST_INIT_SIZE;
                Return OK;
                }
status ListInsert_Sq(SqList &L, int i, ElemType e){

                ElemType *newbase, *q, *p;
                        if(i<=0 || i>L.length +1) return ERROR;
                        if(L.length>=L.listsize){
                        newbase=(ElemType*)realloc(L.elem.(L.listsize+LISTINCREMENT)*sizeof(ElemType));
                        if(newbase==NULL)
                                return OVERFLOW;
                                L.elem=newbase;
                        L.listsize=L.listsize+LISTINCERMENT;
                        }
                        q=&(L.elem[i-1]);
                        for(p=&(L.elem[L.length-1]); p>=q; --p)
                        *(p+1)= *p;
                        *q=e;
                        L.length++;
                        return OK;
                }*/
Status ListDelete_Sq(SqList &L, int i, ElemType &e){
                        ElemType *p, *q;
                        if((i<1) || (i>L.length)) return ERROR;
                        p=&(L.elem[i-1]);
                        e=*p;
                        q=L.elem+L.length-1;
                                p++;
                for(p; p<=q; p++) *(p-1)= *p;
                L.length--;
                return OK;
               }
main()
{ ElemType *p,*q;
    int i,e;
    scanf("%d%d",&i,&e);
    status InitList_Sq(p);
    status ListInsert_Sq(p,i,e);
    status ListDelete_Sq(SqList &L, int i, ElemType &e);
    }

并附上关键的说明~!~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
2
学习也找别人代替,你真行~
2005-10-18 08:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
系统返回错误是Declaration syntax error

错误在对于L的定义,哪位高手帮偶看看~!~
2005-10-18 15:53
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
4
你这是直接从数据结构书籍里面抄的吧,当然编译通不过。
2005-10-18 17:28
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
这种书不负责任
2005-10-18 17:43
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
6
最初由 南蛮妈妈 发布
这种书不负责任


那倒不是,因为多数数据结构的书为了描述简洁清晰,采用了不少的伪码,这些伪码是不能直接在C/C++编译器中使用的。
2005-10-18 18:03
0
雪    币: 212
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
//错误: #include <malloc.h> 未加     sizeof 未注意大小写
//---线性表的动态分配顺序存储结构---//

#include<math.h>
#include <malloc.h>
#include <stdlib.h>
#include <stdio.h>
#define LIST_INIT_SIZE 100 //初始大小
#define LISTINCREMENT 10  //分配增量
typedef struct
{ char name[20];
char stuno[10];
int age;
int score;
}ElemType;
typedef struct{
    ElemType *elem;  //首地址
    int length;  //长度
                     int listsize;  //当前最多可存放的元素个数
    }SqList;
typedef int status;

SqList InitList_Sq(SqList &L){
            //构造一个空的线性表,返回构造结果:成功或失败。
    L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
    if(!L.elem ) exit (OVERFLOW);
    L.length=0;
    L.listsize=LIST_INIT_SIZE;
    return L;
    }
status ListInsert_Sq(SqList &L, int i, ElemType e){

    ElemType *newbase, *q, *p;
      if(i<=0 || i>L.length +1) return -1;
      if(L.length>=L.listsize){
      newbase=(ElemType*) malloc((L.listsize+LISTINCREMENT)*sizeof(ElemType));
      if(newbase==NULL)
        return OVERFLOW;
        L.elem=newbase;
      L.listsize=L.listsize+LISTINCREMENT;
      }
      q=&(L.elem[i-1]);
      for(p=&(L.elem[L.length-1]); p>=q; --p)
      *(p+1)= *p;
      *q=e;
      L.length++;
      return 0;
}
status ListDelete_Sq(SqList &L, int i, ElemType &e)
//Status ListDelete_Sq (SqList &L,int i,ElemType &e)
{
      ElemType *p, *q;
      if((i<1) || (i>L.length)) return -1;
      p=&(L.elem[i-1]);
      e=*p;
      q=L.elem+L.length-1;
        p++;
    for(p; p<=q; p++) *(p-1)= *p;
    L.length--;
    return 0;
         }
main()
{
        //ElemType *p,*q;
    ElemType *e;
        SqList *p,*q;
    int i;
    scanf("%d%d",&i);
    SqList InitList_Sq(*p);
    status ListInsert_Sq();
    status ListDelete_Sq(SqList &L, int i, ElemType &e);
    }
2005-10-19 13:38
0
游客
登录 | 注册 方可回帖
返回
//