书上的例题,对输入的行按长度排序,求解哪里错了
书上的一道例题,对输入的行按长度排序,总是有错误,求指正!cpp(12) : error C2143: syntax error : missing ')' before 'constant'
#include<stdio.h>
#include<string.h>
#define MAXLINES 10
#define MAXLINE 10
#define ALLOCSIZE 500
char *s[MAXLINES];
static char allocbuf[ALLOCSIZE];
static char *allocp=allocbuf;
int readline(char *s[],int MAXLINES);
int getline(char *s,int lim);
char *alloc(int);
void writeline(char *s[],int n);
void sqort(char *v[],int left,int right);
void swap(char *v[],int i,int j);
main()
{int n;
if((n=readline(s,MAXLINES))>=0)
{
sqort(s,0,n-1);
writeline(s,n);
return 0;
}
else printf("error");
return 1;
}
int readline(char *s[],int maxlines)
{int len,n=0;
char *p,line[MAXLINE];
while(len=getline(line,MAXLINE)>0)
{if(n>MAXLINES||(p=alloc(len))==NULL)
return -1;
else
{line[len-1]='\0';
strcpy(p,line);
s[n++]=p;
}
}
return n;
}
int getline(char *s,int lim)
{int i;
char c;
for(i=0;(c=getchar())!=EOF&&c!='\n';i++)
s[i]=c;
if(c='\n')
s[i++]=c;
s[i]='\0';
if(i<lim)
return i;
else
return -1;
}
char *alloc(int n)
{if(allocbuf+ALLOCSIZE-allocp>=n)
{
allocp+=n;
return cllocp-n;
}
else return 0;
}
void writeline(char *s[],int n)
{int i;
for(i=0;i<n;i++)
printf("%s\n",s[i]);
}
void sqort(char *v[],int left,int right)
{ int i,last;
if(left>=right)
return ;
swap(v,left,(left+right)/2);
last=left;
for(i=left+1; i<=right; i++)
if(strcmp(v[i],v[left])<0)
swap(v,++last,i);
swap(v,left,last);
qsort(v,left,last-1);
qsort(v,left+1,last);
}
void swap(char *v[],int i,int j)
{int *temp;
temp=v[i];
v[i]=v[j];
v[j]=temp;
}