| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 712 人关注过本帖
标题:顺序表的合并,最后怎么这样?
只看楼主 加入收藏
a906314530
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2012-11-10
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:5 
顺序表的合并,最后怎么这样?
#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define LIST_INIT_SIZE 100
#define LISTINCREMENT  10
typedef int Status;
typedef int ElemType;
typedef struct{
 ElemType   *elem;
 int length;
 int listsize;
}SqList;
 int ListLength(SqList L)
{
 return L.length;
 }

int  InitList(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;
}//InitList Sq
Status GetElem(SqList L,int i,ElemType &e)
{
    if(i<1||i>L.length)
        return ERROR;
    e=L.elem[i-1];
    return OK;
}
Status ListInsert(SqList &L,int i,ElemType e)
{
    ElemType * newbase,*p,*q;

    if(i<1||i>L.length+1)
        return ERROR;
    if(L.length>=L.listsize){
    newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT) * sizeof(ElemType));
    if(!newbase)
        exit(OVERFLOW);
    L.elem=newbase;
    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 OK;

}

void Print_List(SqList La){
    int i;
     for(i=0;i<La.length;i++)  
     printf("%d  ",La.elem[i]);  
    printf("\n");
}//  赋值
void MergeList(SqList La,SqList Lb,SqList &Lc){
    int i,j,k;
     int La_len,Lb_len;
   ElemType ai,bj;
    InitList(Lc);
     i=j=k=0;
    La_len=ListLength(La);
    Lb_len=ListLength(Lb);
    while((i<=La_len)&&(j<=Lb_len)){
    GetElem(La,i,ai);
    GetElem(Lb,j,bj);
    if(ai<=bj){ListInsert(Lc,++k,ai);++i;}
    else{ListInsert(Lc,++k,bj);++j;}
    }
    while(i<=La_len){
    GetElem(La,i++,ai);
    ListInsert(Lc,++k,ai);
    }
    while(j<Lb_len){
    GetElem(Lb,j++,bj);
    ListInsert(Lc,++k,bj);
    }

    int main() {
    SqList La,Lb,Lc;
    int i;
    InitList_Sq(La);
    InitList_Sq(Lb);
    for(i=0;i<10;i++){
        scanf("%d",&La.elem[i]);
    La.length++;  }
    for(i=0;i<10;i++){
        scanf("%d",&Lb.elem[i]);
    Lb.length++;}
    MergeList(La,Lb,Lc);
    printf("\n顺序表La\n");
    print_List(La);
printf("\n顺序表Lb\n");
    print_List(Lb);
    printf("\n顺序表Lc\n");
    print_List(Lc);
}

}

cpp(89) : error C2601: 'main' : local function definitions are illegal
搜索更多相关主题的帖子: include return 
2013-04-13 15:02
a906314530
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2012-11-10
收藏
得分:0 
CPP,是错误,我的错误怎么回事呢?
2013-04-13 15:02
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:20 
回复 楼主 a906314530
MergeList这个函数少个一个大括号,main函数又多了一个大括号,所以main函数就被当成了内部函数;
你的main函数还缺一个return 0;
而且InitList_Sq和print_List这两个函数都没定义呢!

练就一身本领,只为笑傲江湖!
2013-04-13 18:18
a906314530
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2012-11-10
收藏
得分:0 
谢谢
2013-04-13 18:51
a906314530
Rank: 1
等 级:新手上路
帖 子:10
专家分:7
注 册:2012-11-10
收藏
得分:0 
回复 3楼 笑傲
改是改对了,结果怎么不一样?
2013-04-13 19:31
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:0 
回复 5楼 a906314530
那就是你的程序的问题了

练就一身本领,只为笑傲江湖!
2013-04-13 22:01
快速回复:顺序表的合并,最后怎么这样?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028326 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved