程序总是在tc20中编译错误,请各位大哥帮忙看看
#include "Stdio.h "
#include "Conio.h "
void qsort(int v[],int i,int j);
int main(void)
{
int v[]={49,38,65,97,76,13,27};
int i,j;
i=0;
j=6;
qsort(v,i,j);
getch();
return 0;
}
void qsort(int v[],int left,int right)
{
int i,last;
void swap(int v[],int i,int j)
if(left> =right)
return;
swap(v,left,(left+right)/2);
last=left;
for(i=left+1;i <right;i++)
{
if(v[i] <v[left])
swap(v,++last,i);
swap(v,left,last);
qsort(v,left,last-1);
qsort(v,last+1,right);
}
void swap(int v[],int i,int j)
{
int temp;
temp=v[i];
v[i]=v[j];
v[j]=temp;
}
}
[解决办法]
函数内不能再有函数的定义.你的swap函数应该写在外面。
如下:
#include "Stdio.h "
#include "Conio.h "
void qsort(int v[],int i,int j);
int main(void)
{
int v[]={49,38,65,97,76,13,27};
int i,j;
i=0;
j=6;
qsort(v,i,j);
getch();
return 0;
}
void swap(int v[],int i,int j);
void qsort(int 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(v[i] <v[left])
swap(v,++last,i);
swap(v,left,last);
qsort(v,left,last-1);
qsort(v,last+1,right);
}
}
void swap(int v[],int i,int j)
{
int temp;
temp=v[i];
v[i]=v[j];
v[j]=temp;
}
[解决办法]
在C里面,函数不可以嵌套定义。
[解决办法]
#include "Stdio.h "
#include "Conio.h "
void swap(int v[],int i,int j)
{
int temp;
temp=v[i];
v[i]=v[j];
v[j]=temp;
}
void qsort(int v[],int i,int j);
int main(void)
{
int v[]={49,38,65,97,76,13,27};
int i,j;
i=0;
j=6;
qsort(v,i,j);
getch();
return 0;
}
void qsort(int 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(v[i] <v[left])
swap(v,++last,i);
swap(v,left,last);
qsort(v,left,last-1);
qsort(v,last+1,right);
}
}