| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 16303 人关注过本帖
标题:求高手关于【error C2143: 语法错误 : 缺少“)”(在“;”的前面)】错误的解 ...
取消只看楼主 加入收藏
zjxiaolu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-12-30
结帖率:0
收藏
已结贴  问题点数:20 回复次数:0 
求高手关于【error C2143: 语法错误 : 缺少“)”(在“;”的前面)】错误的解决办法

#include"stdio.h"
#include"stdlib.h"
#define OK 1
#define MAXSIZE 10
typedef struct{
    int  r[MAXSIZE+1];
    int length;
}SqList;              //定义顺序表类型

int CreateList(SqList &L)//创建顺序表
{
    L.length=0;
    for(int i=1;i<=MAXSIZE;i++)
    {
        scanf("%d",&L.r[i]);
        L.length++;
    }
    return OK;
}

int ShowList(SqList &L)  //显示顺序表
{
    for(int i=1;i<=MAXSIZE;i++)
        printf("%d ",L.r[i]);
    return OK;
}

//1直接插入排序
void InsertSort(SqList &L)//直接插入排序
{

    for(int i=2;i<=L.length;++i)
        if(L.r[i]<L.r[i-1]){    //需将L.r[i]插入有序子表
            L.r[0]=L.r[i];     //复制为哨兵
            L.r[i]=L.r[i-1];
            for(int j=i-2;L.r[0]<L.r[j];--j)
                L.r[j+1]=L.r[j]; //记录后移
            L.r[j+1]=L.r[0];   //插入到正确位置
        }
}


//2折半插入排序
void BiInsertionSort ( SqList &L )
{    // 对顺序表L作折半插入排序
    for ( i =2; i <=L.length; ++ i ) {
        L.r[0] = L.r[ i ];      //  将L.r[ i ] 暂存到L.r[0]
        low = 1; high = i - 1;
        while(low<=high)  {//low>high break 在L.r[1..i -1]中折半查找插入位置;[low…high]
            m = (low + high )/2;          // 折半
        if (L.r[0].key < L.r[m].key)
            high = m - 1;                 // 插入点在低半区域
        else  low = m+1;                // 插入点在高半区域
        }//while
        for ( j=i- 1; j>=high+1; -- j )
            L.r[j+1 ] = L.r[j];               // 记录后移
            L.r[high+1] = L.r[0];              // 插入
        } // for
}//BInsertSort



//3快速排序
int Partition(SqList &L, int low, int high)//一趟快速排序
{
    L.r[0]=L.r[low];   //用子表第一个记录做枢轴元素
    int pivotkey=L.r[low]; //枢轴记录关键字
    while(low<high){  //从两端交替向中间扫描
        while(low<high && L.r[high]>=pivotkey) --high;
        L.r[low]=L.r[high];  //将记录小的移到低端
        while(low<high && L.r[low]<=pivotkey) ++low;
        L.r[high]=L.r[low];  //将记录大的移到高端
    }
    L.r[low]=L.r[0];    //枢轴记录到位
    return low;        //返回枢轴位置
}

void QSort(SqList &L,int low,int high)//快速排序
{
    if(low<high)//长度大于1
    {  
        int pivotloc=Partition(L,low,high); //一分为二
        QSort(L,low,pivotloc-1);  //对低子表递归排序
        QSort(L,pivotloc+1,high); //对高子表递归排序
    }
}
void QuickSort(SqList &L)//对L快速排序
{
    QSort(L,1,L.length);
}



int main()
{
    SqList L,L1,L2,L3;
    printf("请输入10个数字:\n");

    CreateList(L);   //创建线性表L
    L1=L2=L3=L;

    InsertSort(L);   //对L1直接插入排序
    printf("插入排序:\n");
    ShowList(L1);
    printf("\n");



    BiInsertionSort(L2);   //对L2折半插入排序
    printf("快速排序:\n");
    ShowList(L2);
    printf("\n");

    nsertSort(L3);   //对L3快速排序
    printf("快速排序:\n");
    ShowList(L3);
    printf("\n");

    return 0;
}



今天写了一点关于排序的代码,用vs,vc6.0编译时出现了这些个错误,很闹心。我在百度上看了很多解决办法,仍然解决不了,就拉出来让大家看看,希望高手给解决一下,不胜感激~~~我熬夜找问题,就是找不出,好痛苦
搜索更多相关主题的帖子: include return 
2012-12-30 03:03
快速回复:求高手关于【error C2143: 语法错误 : 缺少“)”(在“;”的前面)】错误 ...
数据加载中...
 
   



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

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