求高手关于【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编译时出现了这些个错误,很闹心。我在百度上看了很多解决办法,仍然解决不了,就拉出来让大家看看,希望高手给解决一下,不胜感激~~~我熬夜找问题,就是找不出,好痛苦